A 五彩斑斓
枚举上面两个顶点同色,同列的同色,拿桶记一下就行。赛时直接给颜色分了个块,逐个块处理的。
B 错峰旅行
方案数直接乘起来即可,离散化后差分扫描线。
C 线段树
观察到性质:一个查询的区间个数为 \(1\) 加上分裂次数,当它和一个区间有交但并不包含时,就会分裂一次。
设 \(f_{i,j}\) 表示所有区间在这个区间的最小分裂次数,则答案为 \(f_{1,n}+Q\),区间 DP,转移枚举分割点,原来分裂的一定还会分裂,考虑新分裂的有那些,就是左端点在 \([l+1,mid]\),右端点在 \([mid+1,n]\) 和左端点在 \([1,mid]\),右端点在 \([mid+1,r-1]\) 的区间,中间算重的减去,前缀和处理就好了。
D 量子隧穿问题
发现是基环树森林,只保留 \(n\) 的连通块即可。
肯定是 DP 之类的问题,但是如果从方案数考虑就很难转移,因为有太多其他节点,计数转概率,设 \(f_i\) 表示现在节点 \(i\) 上有猫的概率,有 \(f_u=f_uf_v,f_v=f_v+f_u(1-f_v)\)。
如果是树,一遍就做完了,发现只有环上的统计非法,考虑基环树上的经典套路,把环从某处断开,然后枚举每种情况统计加权后的贡献。在环之前,我们的答案都是正确的,当到达环时,相互转移的节点之间的概率就产生了牵连(后效性),所以不对,当到达环的起点时,直接钦定这时它是否有猫,然后再转移,最后算加权的概率即可。