3.4模拟赛总结

Posted Flame♡

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3.4模拟赛总结相关的知识,希望对你有一定的参考价值。

烦,白天犯困睡不醒,中午被人吵得睡不着,也不是不能理解,毕竟素质也只有那么点

欸呀,又挂了20pts,恼…

时间安排

7.30-8.30

认真看了三道题,感觉T1线段树优化,T2结论性,组数dp,T3数据结构?想了个T1的假做法

8.30-9.00

认真打瞌睡顺便思考怎么能让T1边真

9.00-9.40(不到)

感觉应该先把能写的东西写了,于是思索了一下T2,写了代码,开始打表

9.40-10.20(左右?)

写了T3的40

10.20-11.00(不到)

写了T1的暴力 顺便继续思索T1的正解

11.00-12.00

思索正解 顺便检查

题目分析

T1

思考一个假做法

考虑线段树上每个节点n个虚拟点,代表 i i i 号点要连向的点

在叶子处,例如存在一条边 x − > y x->y x>y那么在 x x x 的位置把值设成 y y y

然后非叶子处,直接根节点 的 i i i 号点向左右子树的 i i i 号点连边

这样处理上限是 O ( n m ) O(nm) O(nm) 的,加上一些小优化之后到不了这个上限

然后考虑,对于一个询问 ,直接在线段树上区间连边,复杂度 O ( n q l o g m ) O(nqlogm) O(nqlogm)

貌似很对,但有一个小问题

tarjan的复杂度是 O ( n + m ) O(n+m) O(n+m)

所以就g了qwq

T2

什么,我只会打表

2 n ( n − 1 ) / 2 2^n(n-1)/2 2n(n1)/2枚举后,大力dfs跑不重复最长路

T3

(不知道为什么假了,我哭!)

考虑分开做,首先,区间异或=前缀异或后,选两个位置进行异或

那么我们可以先处理出来哪些区间是受关注的区间

接下来的问题就是对于询问区间 i i i , 使得对于查询区间 j j j l j < = l i , r i < = r j l_j<=l_i,r_i<=r_j lj<=li,ri<=rj,把这些区间i整体加上一个值,直接按左端点从大到小排序后,右端点从小到大排序,查询区间在询问区间之前

然后维护出来每个查询区间之后,考虑直接变成树状数组上差分修改,单点查询

我裂开了,加了负数之后变成负的,忘输出的时候+mo再%mo了 qwq

以上是关于3.4模拟赛总结的主要内容,如果未能解决你的问题,请参考以下文章

8-6测试总结

王道例3.4通过二叉树遍历结果建立二叉树

CSP-S 模拟 R2D2 总结

noip模拟赛 三部曲

大数据技术之_26_交通状态预测项目_01_数据模拟 + 数据采集 + 数据建模 + 数据预测 + 项目总结

冲刺Noip2017模拟赛7 解题报告——五十岚芒果酱