1001. Add More Zero
参见附件。
1002. Balala Power!
每个字符对答案的贡献都可以看作一个26进制的数字,直接按26进制的从高到低位比较大小。由排序不等式,显然贡献越大的对应的数字越大时答案最大。
注意点:一个字符一旦做过最高位(位数大于1)就不能被赋值为0。
1003. Colorful Tree
单独考虑每一种颜色,答案就是对于每种颜色,至少经过一次这种颜色的路径条数之和。反过来思考只需要求有多少条路径没有经过这种颜色即可。
记
- 不经过col[v]的路径的两端
x,y 一定同在子树v ; - 对于
v 的祖先u ,若col[v]==col[u],则在u 上计算时整棵子树v 都要被排除。
这样我们可以用合并线段树的方法解决,复杂度
又发现线段树实际上只维护了单点增加的操作,可以用sum[i]表示颜色i需要排除的节点数对于dfs序的前缀和,复杂度
1006. Function
考虑置换
那么
而如果
答案就是
1008. Hints of sd0061
参见附件。
1009. I Curse Myself
按题解写出来的那个方法过的,时间很险,3697ms。。。
参见附件。
1011. KazaQ’s Socks
参见附件。
1012. Limited Permutation
题目给的信息实际上就是
首先必须有一个位置
1012_NlogN.cpp
。
很显然,递归算法的瓶颈不在于递归本身而在于利用映射查询是否有位置对应
1012.cpp
。