NOIP前做题记录

鉴于某些原因(主要是懒)就不一题一题写了,代码直接去\(OJ\)上看吧

CodeChef Making Change

传送门

完全没看懂题解在讲什么(一定是因为题解公式打崩的原因才不是曲明英语太差呢……)

由于\(C=\sum x_i\times a_i\),我们可以把\(x_i\)给二进制分解,然后依次考虑每一位

\(f_{i,j}\)表示考虑到\(C\)的二进制第\(i\)位,且\(0\)\(i-1\)位都已经对上,进位为\(j\)的方案数,那么考虑所有\(x_i\)当前这一位,每一个\(a_i\)最多选一个,用一个类似背包的东西计算出\(g_j\)表示总共进位为\(j\)的方案数,转移就是\(f_{i+1,j}+=g_{2j+c_{i+1}}\),其中\(c_{i}\)表示\(c\)的二进制第\(i\)

时间复杂度\(O(能过)\)

wannfly挑战赛24E

传送门

直接离线点分+背包,记得询问得挂到点分树的\(LCA\)

wannfly挑战赛24F

传送门

发现这个柿子长得很像递推数列的通项公式,那么我们相当于已经知道了特征方程的所有解,直接分治\(NTT\)求出原来的特征方程,然后带进去暴力递推出第\(n\)项就行了

猜你喜欢

转载自www.cnblogs.com/yuanquming/p/11711515.html