SRM 550 Div1 250 按题意模拟,注意判断边界是否被访问时,以后的路径不能算上
SRM 550 Div1 500 一道找规律题,打个表
SRM 550 Div1 1000 矩阵快速幂题,每个位置是该位置需要多少次才能转到目标态,先让他转到目标态的贡献减去之后,剩下就只剩下自己转圈的贡献了,我们发现这样的贡献在每个位置都相同,就可以算出最大旋转次数. 然后状态就是 有多少个需要两步到目标态,多少个一次,多少个0次,这个状态是n^2的,直接转移即可,多开一维记录每次全0的贡献和即可.
这种看上去转移单一的题,主旨是先找到共同点,转化成转移相同的状态.然后合并多余状态,进行矩乘优化.
SRM 551 Div1 250 暴力判断贪心…
SRM 551 Div1 450 Floyed 建图是从i直接到j需要删的最少边数,考虑DP转移不难想到
SRM 551 Div1 1000
一道比较不错的计数题.
首先一个套路 meet in the middle 做出 选出k个sweet 点的和不超过MAX的方案数
这样我们只要求 有k个点有贡献的带标号生成树个数就可以了,这个我一开始本来想用组合数+ Cayley定理算的,后来看了AcrossTheSky的代码发现,我们直接用矩阵树定理算出 有贡献点 <= k个的方案数再容斥就可以了.
O ( 2 n / 2 ∗ ( n / 2 ) + n 4 ) O(2 ^{n / 2} * (n / 2) + n ^ 4) O(2