CF1929

A

最大值 - 最小值

B

题意:在 n×n 的方阵中选择若干个方块,使得至少有 k 条对角线上有选择的方块。

观察:如果选择第一行的 n 个,和最后一行的中间 n2 个,可以覆盖 4n4 条对角线,这其中每一个格子都恰好覆盖两条对角线。

所以如果 k4n4,输出 k2。否则输出 2n2+(k(4n4))

C

题意:一个赌场。若赢了,则下注的钱变成 k 倍;否则输光下注的钱。同时赌场不会让你连输 x+1 局。本金 a 元,是否有方法获得无限的钱?

题解:必须保证每次下注后若赢了,能把之前下注的钱赚回来。也就是 asi1pi+kpi>api 是第 i 次下注的钱,sp 的前缀和。

用这个式子推出 p1px+1 后,看 pi 是否超过 a。若超过,则无解。

这对了吗?

发现 pi 增长的非常快,必须在递推 p,s 的中间及时判断并跳出,不然会爆 long long

D

题意:给定树。选若干个标记点,使得不存在一条简单路径包含三个标记点。求方案数。

dp[i][0] 表示 i 的子树内不存在一条简单路径包含 3 个标记点,也不存在一条包含两个标记点的 向上的链(端点有祖先关系的路径) 的方案数。

dp[i][1] 表示 i 的子树内不存在一条简单路径包含 3 个标记,但是存在一条 …… 的方案数。

转移方程:

x 不选:dp[x][0]vson[x]dp[v][0],dp[x][1]vson[x]dp[v][1]

x 选:dp[x][0]1,dp[x][1]vson[u]dp[v][0]1

E

题意:给定 k 条简单路径,要求每条简单路径上至少一条边被标记,问标记边的方案数。k20

状压 DP,dp[S]:要求 S 中标记的简单路径上至少一条边被标记,标记的方案数。

设每一条e覆盖的简单路径的集合为 Se。则状压的转移方程是 dp[S|Se]=min(dp[S|Se],dp[S]+1)

但复杂度不会炸吗?不会,因为不同的 Se 个数是 O(k) 的。证明可以考虑对路径的端点建虚树。

F

题意:给定 BST,有一些点权值已知,且所有结点值域 [1,C],求方案数。

其实很简单,BST 的中序遍历一定是单调上升的。

posted @   FLY_lai  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示