
计数dp
C202044zxy
这个作者很懒,什么都没留下…
展开
-
CF623E Transforming Sequence
一、题目点此看题二、解法首先有一个显然的dpdpdp,设dp[i][j]dp[i][j]dp[i][j]为前iii轮选jjj个的方案数:dp[i][k]=∑dp[i−1][j]×C(n−j,j−k)×2jdp[i][k]=\sum dp[i-1][j]\times C(n-j,j-k)\times 2^jdp[i][k]=∑dp[i−1][j]×C(n−j,j−k)×2j发现这样很不好优化,我们设f[i][j]=dp[i][j]C(n,j)f[i][j]=\frac{dp[i][j]}{C(n,j)原创 2020-06-19 11:01:47 · 216 阅读 · 0 评论 -
CF840C On the Bench
一、题目点此看题二、解法计数dpdpdp神题,真的强!!首先必须要知道一个结论,如果a×ba\times ba×b是完全平方数,a×ca\times ca×c是完全平方数,那么b×cb\times cb×c一定是完全平方数,证明可以从指数的奇偶性考虑(感性理解一下吧)。这告诉我们两两乘积为完全平方数的可以划分成一堆,堆中相乘一定为平方数,不同堆相乘一定不为完全平方数,这样就很大程度上简化...原创 2020-02-13 12:08:54 · 272 阅读 · 1 评论 -
Dead Ends
一、题目点此看题二、解法看到n≤10n\leq 10n≤10,自然而然第想到了状压。定义dp[s1][s2]dp[s1][s2]dp[s1][s2]为联通情况为s1s1s1,叶子的情况为s2s2s2,初始化dp[2i−1][2i−1]dp[2^{i-1}][2^{i-1}]dp[2i−1][2i−1]为111,然后转移也不难。但是这道题真的这么简单吗?当然不是,考虑下面一种情况。所以...原创 2019-11-20 18:22:22 · 335 阅读 · 0 评论 -
Emiya 家今天的饭
一、题目点此看题二、解法0x01 暴力可以考虑搜索,时间复杂度O(mn)O(m^n)O(mn),可以拿到323232分的高分。考虑m≤3m\leq 3m≤3的部分分,直接四维dpdpdp,定义dp[i][j][k][l]dp[i][j][k][l]dp[i][j][k][l]为前iii行分别选j,k,lj,k,lj,k,l个,转移也不难,时间复杂度O(n4m)O(n^4m)O(n4m),...原创 2019-11-19 08:49:02 · 715 阅读 · 0 评论