【题解】Solution Set - NOIP2024集训Day37 计数 dp

【题解】Solution Set - NOIP2024集训Day37 计数 dp

https://www.becoder.com.cn/contest/5555

T1,2 easier

1,5,(6,3),(2,7),8,4


「CQOI2011」放棋子

做过。

考虑容斥。

二维二项式反演?


感觉用二项式反演,转化为逆向问题反而不好做,考虑一个 dp 直接做。

fi,j,k:用前 k 个颜色,放置在恰好 i 行,j 列中。

fi,j,k=p=0j1fi,p,k1×...

又死了,显然最后这个颜色 k 在放置 (jp) 列的同时,可以再放在若干行上。

(dp 转移还是需要加强啊,想想某一个特定元素的所有情况,并消除她们的贡献之后来划分子问题。


fi,j,k=l[0,i],r[0,j][(il)(jr)ak](fl,r,k1(nlil)(mrjr)gil,jr,ak)

gi,j,k:将 k 个同色棋子恰好填满 i 行,j 列。

gi,j,k=1k!((ij(k1))gi,j,k1+ij(gi1,j,k1+gi,j1,k1+gi1,j1,k1))

相当于我们先钦定每个元素不同,然后分讨这个元素插入进去之后的影响。

胡对了!!!

(虽然时间复杂度 O(n2m2a) 没有题解的 O(n2m2c) 优,但是好歹她对了。😁

与题解不同的部分就在于 g 的求解上面(题解的求法可以看 luogu 的代码。

题解那个也挺对的,就是:所有的 - 不合法的。



「ARC117C」Tricolor Pyramid

之前好像碰过这道题,但是没有 A 来着(

把原字符集映射到 13

然后不同的取第三者,就相当于异或。但是相同怎么办啊。

15min passed...(又想了一些奇怪的东西。


(瞄了一眼题解,发现 mod3

实际上,最开始这个思路大体是对的,就是要找到一个合适的运算来表达这种操作,然后再通过这个运算的一些性质来合并计算整个过程。

a,b 合并就等价于:(a+b)mod3

(真就乱试啊。

现在问题就简单了,就是要算每个底部元素对顶部的贡献次数。(注意通过 n 的奇偶来判一下最后的符号。

image

相当于每次选择是否向右走一步,所以 i 的贡献次数就应该是 (n1i1)

然后就没了?

5min passed...

注意,因为我们的阶乘可能整除 3,所以必须要用 lucas


「AGC035D」Add and Remove

n18???

区间 dp?


实际上所有的操作,可以视作一个长度为 n2 的值域在 [1,n] 每个元素互不相同的序列。

感觉这道题大体的思路应该是:

  1. 通过一种神秘的方法,对于一种策略,可以等价知道每个元素对答案的贡献;(尝试过用 dag 计数来理解。
  2. 根据上面找到的这种等价方式,将问题转化。

20min passed...


https://www.luogu.com.cn/article/sh7ab2sh

首先要意识到,最后剩下的两个数一定是 a1,an。这个可以反证。

其实这种 “倒着思考” 可以视作是一种思考转移的策略。

而每次删掉最后这一个元素的时候,对两侧的贡献的系数在转移的时候跟着转移,实际上就是上面第一点提到的这个系数问题。

把系数放在状态里面。

可以证明的是,对一个区间存在的 cl,cr 不会相同。

所以总的状态数是 O(2n),而每个 dp 值只会被用到一次,所以直接打爆搜就行(否则会 MLE。

posted @   CloudWings  阅读(22)  评论(3编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下
历史上的今天:
2023-09-29 【题解】[CQOI2008] 传感器网络
2023-09-29 【比赛】2023 CSP-S 备战
点击右上角即可分享
微信分享提示