A. Sereja and Bottles
B. Sereja and Array
- 维护全局增量\(Y\),对于操作1(即\(a_{v_i}=x\))操作,改为\(a_{v_i}=x-Y\)。
C. Sereja and Contest
- 观察式子\(d_i=\sum_{j=1}^{i-1}{(a_j\cdot(j-1)-(n-i)\cdot a_i)}\)
- 假设最先排除的是\(k\),那么对于\(i<k\)的数是不会有影响的,因为\(d_i\)会因为总人数\(n\)的减少而变大。
D. Sereja and Periods
- 显然,匹配过程是贪心做的。
- 问题转化为串\([a,b]\)最多能匹配多少个串\(c\)。
- \(dp\)做法:
- \(dp(i)\)表示串c从位置i开始,串a从位置0开始匹配得到的最长长度。
- 假设当前匹配了\(L\)长,则\(L+=dp(L\ \%\ |c|)\),重复\(b\)次即可。
- 循环节做法:
- 每次匹配一个串\(a\)后,得到串\(c\)的位置,由于\(|c|\le 100\),所以最多101次后得到循环节长度,那么就可以直接计算最后的数量。
E. Sereja and Subsequences
- 问题就是求所有不同上升子序列的乘积和。
- 假设所有\(a_i\)均不相同,那么直接树状数组维护即可。
- 由于\(a_i\)可能相同,所以需要考虑前一个\(a_i\)带来的贡献,计算新的贡献时需要扣除重复的贡献。
F. Sereja and Straight Lines
- 将坐标系转45度后,原坐标系的曼哈顿距离成为新坐标系的切比雪夫距离。
- 将点按\((x,y)\)排序,二分距离\(d\),维护\(dx\le d\)区间,两边的\(y\)坐标极差不超过\(d\),则当前\(d\)可行。
转载于:https://www.cnblogs.com/mcginn/p/6657192.html