连炸两题,身败名裂。
看来不拍暴力就会die。
A题
滑动窗口或什么前缀和二分之类的就行了。
B题
好像是有奇怪的进制加法可以做。
我的做法是这样的,先计算出{1,2,--,n}变换到A的次数。
然后逐位确定乱搞。
但是要写高精度。
然后我因为构造函数写成了int炸了。
C题
大意是对每一行有N条带权线段,对于每个位置计算出覆盖它的线段的最大权值。
扫描线用个堆来维护一下就行了。
然后我想错了用了个单调队列,成功炸掉90分。
D题
对于每一个交换子树操作,左子树的所有点的答案要加上右子树的size,右子树的所有点的答案要减去左子树的size。
然后找一个支持区间增加单点查询的数据结构如线段树,BIT就行了。
E题
设f[i][j]表示已经走了i步,该匹配j位置的方案数。
然后可以枚举下一位是什么:
f[i+1][to(j,0)]+=f[i][j]
f[i+1][to(j,1)]+=f[i][j]
注意如果to(j,c)=m,则要同时转移到f[i+1][m],f[i+1][0]。
然后矩阵快速幂即可。
原文:http://www.cnblogs.com/wzj-is-a-juruo/p/5220053.html