多校NOIP29
T1:
考场思路为逐一考虑,发现问题形式实际上是二进制进位过程
暴力模拟复杂度为O(2^n),复杂度瓶颈在于需要枚举所有状态,于
是考虑DP优化,发现实际上是退背包的板子。
T2:
这种题一般的套路为枚举中间计算两边合法情况再乘法原理即
可,具体考虑问题发现两数异或同一数由于异或运算的性质,当两
数二进制位相同时答案相同,因此关键点在于两数二进制位第一次
不同的位置,于是马师傅的做法为按位考虑贡献,对于某数钦定相
同的二进制位为前pos 位,那么当当前数第pos 位为1 时贡献为前
面第pos 位为1 的个数乘以后面第pos 位为0 的个数,反之同理,
于是开两个桶对顶上述信息即可,是比较套路的做法。
题解做法为考虑对于这一类明显不是直接按位考虑的位运算题
考虑Trie 树,考虑对于当前枚举的k 所能造成贡献的i 与j 首先j 一
定在k 的某节点的兄弟节点上,那么考虑i 的位置,若i 也在j子树
中,那么i,j 的选择方案为C(x,2),x为j子树中数的个数,反之可以
通过j,k 在第pos 位的情况判断i在第pos 为的情况,统计该层数的
个数即可,然而问题在于存在限制条件为i < j, 由于按时间顺序插
入,因此在插入j 时统计不合法情况数减去即可
T4:
考虑能够想到连边的套路,然而考场上并没有拓展出来,考虑
问题实际上在建出边之后转化为使得所有点入度为1 ,考虑首先若
边数大于点数显然无解,对于树形直接换根DP 即可,套路为首先
预处理出DP 以及相关信息,在换根过程中考虑变量即可,对于基
环树考虑根一定在环上于是暴力找环在枚举环的走向即可
对于图论题一定要考虑重边与自环