11 2020 档案

摘要:一个奇妙的不等式操作: \(a_x+a_y\geq (a_x xor a_y)=f_x-f_y\) 所以只有$a_x+a_y\geq f_x-f_y$的点才能贡献答案。 这个东西的意义是$a_x\geq 在$x$子树且不包含$x$,$y$子树的点$。 考场上猜了符合这个条件的点对只有$n\log_2 阅读全文
posted @ 2020-11-29 12:28 celerity1
摘要:。 阅读全文
posted @ 2020-11-21 17:11 celerity1
摘要:题解赛后发。 最后一题没看懂题意就没做 结果发现我第一次理解的题意是对的。。。。。。。 感觉这次题目没有什么思维难度。 ADADISH 签到。 #include<bits/stdc++.h> using namespace std; #define N 5010 int n,T,a[N],f[N]; 阅读全文
posted @ 2020-11-13 22:17 celerity1
摘要:基础卷积练习题 看上去$\max$的限制不好处理。 但是题目中$a,b$都特别小。 考虑枚举$a,b$的值为$x,y$,新建两个数组$c,d$,当$a_i=x,b_i=y$,$c_i,d_i$赋值为$1$。 把$c,d$作or卷积,$>0$的部分对$f(x,y)\(取\)\max$贡献到答案。 时间 阅读全文
posted @ 2020-11-12 10:14 celerity1
摘要:考虑如何回答询问。 由于每个格子被加成多少在询问某个时间很难具体得知(或者得知时间复杂度太高),所以要换一种思路。 注意到每个格子加上的都是正数,所以一个格子如果$\geq L$,则在后面的时刻它都会$\geq L$。 考虑求出一个格子$\geq L$的时间,这是个经典的问题(集训队作业矩阵乘法), 阅读全文
posted @ 2020-11-12 09:38 celerity1
摘要:在集训队作业 line 中,单调栈的限制很难处理。 但是顺着一个点往左边第一个比他大的点跳,则我们得到了可以转移的连续段。 考虑把一个点向左边第一个比它大的点连边,则形成了一棵树。 使用树链剖分+线段树即可维护。 回到此题。 求出一个点$i$向左/右跳到的第一个合法的区间位置$l_i,r_i$。 这 阅读全文
posted @ 2020-11-10 10:23 celerity1
摘要:我这个贪心做过$2$遍了,但是不太记得了。 这个问题:有一颗树。 你需要求出一个答案排列。 权值和这个排列有关。 要求一个点必须在它的父亲后面。 求最优的排列。 维护一个并查集。 考虑我们把两个操作序列合并。 操作序列的最优顺序是个全序关系。 我们维护一个堆,每次取出最优的块,把它和父亲的块合并,表 阅读全文
posted @ 2020-11-05 16:04 celerity1
摘要:题目的限制等于从$p$个队列,每个队列里有$n$个数。 每次可以取出一个非空的队列的头部,询问方案数。 如果$p$较小,设$(s_1,s_2...s_p)$表示第$i$个队列取到$s_i$的方案数。 题目要求不能取连续相同的$p$个数。这等于在空间上有一些点不能走。 把这个问题放在$p$维空间上。 阅读全文
posted @ 2020-11-05 07:45 celerity1