本文参考自[彭博-问题的常用技巧] I.条件计数 问题最难的点一般有两种途径,不重不漏的计数和容斥,如果要不重不漏的计数就要寻找一个唯一能表示计算的目标的量 1.CF1264D2 递归定义合法括号序列及其深度: • 空串是合法括号序列,深度为 0 。 • 如果 s 是合法括号序列,那么 (s) 也是 ...
转载
2021-06-05 00:49:00
154阅读
2评论
(直播贺题) \(\texttt{CodeForces 559 }\text{Gerald and Giant Chess}\) 假设有一个 \(h\) 行 \(w\) 列的棋盘,棋盘上的格子有的是可以经过的,有的是不可以经过的。一开始在棋盘的左上角(第一行第一列)有一颗棋子,这颗棋子每次只能往右或 ...
转载
2021-08-23 10:31:00
145阅读
2评论
其实还是比较经典的格子dp其实还是比较经典的格子dp其实还是比较经典的格子dp设dp[i][j][q]为放完第i列有j个连通块,第i列状态是q的答案数设dp[i][j][q]为放完第i列有j个连通块,第i列状态是q的答案数设dp[i][j][q]为放完第i列有j个连通块,第i列状态是q的答案数q取[0,1,2,3],分别表示第i列放黑白
原创
2022-02-11 15:02:34
10阅读
link题意:给定有n个人,n个人可以取1~x这些取值,n<=500,x<=500 每一轮当场活的人会同时朝所有在场的人开一枪,也就是hp-=1,最后如果全死算是一种方案,问有多少方案。n<=500x<=500n<=500 x<=500n<=500x<=500思路:考虑dp,dp[i][j]dp[i][j]dp[i][j]代表考虑前i个人,取值<=j的合法方案数,可以发现如果在场一个人是对答案没有贡献的,dp[i][j]dp[i][j]dp[i]
原创
2021-11-04 14:14:23
10000+阅读
CF1606E 由于没有赢家,等价于最后所有人都会死,所以可以考虑在不断死的过程中计算方案。 设$dp[i,j]$表示当前剩余$i$个人,所有人都已经受到了$j$次伤害,已经死的人的能力值的方案数。转移考虑枚举还剩下多少个人,及由$dp[i,j]$转移到$dp[k,nj]$,其中$nj=\min(j ...
转载
2021-11-03 10:54:00
68阅读
2评论
题意:给定一个序列,有 n 个数,只有01,然后你进行k次操作,把所有的1变成0,求有多种方法。 析:DP是很明显的,dp[i][j] 表示进行第 i 次操作,剩下 j 个1,然后操作就两种,把1变成0,把0变成1。也可以用记忆化来做。 代码如下: 记忆化搜索:
转载
2016-08-25 12:40:00
54阅读
其实还是比较经典的格子dp其实还是比较经典的格子dp其实还是比较经典的格子dp设dp[i][j][q]为放完第i列有j个连通块,第i列状态是q的答案数设dp[i][j][q]为放完第i列有j个连通块,第i列状态是q的答案数设dp[i][j][q]为放完第i列有j个连通块,第i列状态是q的答案数q取[0,1,2,3],分别表示第i列放黑白,白黑,黑黑,白白q取[0,1,2,3],分别表示第i列放黑白,白黑,黑黑,白白q取[0,1,2,3],分别表示第i列放黑白,白黑,黑黑,白白因为转移比较简单,直接看代
原创
2021-08-26 15:28:48
59阅读
计数类 dp 可分为 计数 dp 和数位统计 dp。大多是用来统计方案数什么的,特别强调 不重不漏,在此还是根据各个题的特点将计数 dp 和数位 dp 分开整理。其实数位 dp 的题目会相对多很多… 计数dp 模板题 AcWing 900.整数划分 重点: 计数 dp、完全背包问题抽象 首先模拟下样
转载
2021-05-14 18:57:00
350阅读
2评论
给定两个正整数a和b,求在[a,b]中的所有整数中,每个数码(digit)各出现了多少次。Input输入文件中仅包含一行
原创
2022-08-10 11:17:31
36阅读
计数问题确实是短板qaq这个可以先求出符合要求的L,可以通过枚举顶点来求,然后就是求n,
原创
2022-08-31 18:15:22
59阅读
设d(i, j)为连续子序列[i, j]构成数的个数,因为遍历从根节点出发最终要回溯到根节点,所以边界情况是:d(i, i) = 1; 如果s[i] != s[j], d(i, j) = 0假设第一个分支在Sk回到根节点,方案数为d(i+1, k-1)其他分支访问从Sk到Sj,方案数为d(k, j)...
转载
2015-03-04 10:28:00
84阅读
2评论
题意: 给你两个串s1,s2和一个K, 有一种操作是在一个串切开然后交换位置, 问s1有多少种方法经过K次这样的操作变成s2; 思路: (从来没接触过计数DP...还是太菜...参考了【大牛blog】 首先呢,不管怎么切怎么换,都是原串自己转来转去有没有???看到这个其实我还是不懂。。。。 然...
转载
2016-12-05 20:39:00
53阅读
题意:给定一个数 n,从1-n这些数中任意挑出3个数,能组成三角形的数目。 析:dp[i] 表示从1-i 个中任意挑出3个数,能组成三角形的数目。 代码如下:
转载
2016-10-26 22:57:00
43阅读
链接:://ac.nowcoder.com/acm/contest/373/B:
原创
2022-03-14 10:02:57
105阅读
题意: 给你一个含n个字符的字符串,字符为'D'时表示小于号,字符为“I”时表示大于号,字符为“?”时表示大小于都可以。比如排列 {3, 1, 2, 7, 4, 6, 5} 表示为字符串 DIIDID。任务是计算所有能产生给定字符串的序列数量,每个序列含n+1个数字,分别为1~n+1,即从1开始且...
转载
2015-05-01 23:08:00
135阅读
2评论
文章目录QuestionIdeasCode
Question一个正整数 n 可以表示成若干个正整数之和,形如:n=n1+n2+…+nk,其中 n1≥n2≥…≥nk,k≥1。我们将这样的一种表示称为正整数 n 的一种划分。现在给定一个正整数 n,请你求出 n 共有多少种不同的划分方法。输入格式 共一行,包含一个整数 n。输出格式 共一行,包含一个整数,表示总划分数量。由于答
原创
2022-07-01 13:18:05
71阅读
链接:https://ac.nowcoder.com/acm/contest/373/B来源:牛客网lililalala正在玩一种有NN个回合的回合制RPG游戏,初始分数为0,第ii个回合lililalala有如下两种选择。 A.将分数加上aiai B.将分数×-1×-1lililalala同样也很讨厌野兽数666666,但是他很却喜欢数字-6...
原创
2021-09-06 15:20:35
167阅读
题意 给定一棵 \(n\) 个节点的树,每个点有个喜欢程度。求 选联通块,并且这个联通块包含最大的点权的方案数。 分析 很难想的一道题…… 原本思路:将权值最大的点设为根,跑一遍树形dp即可。 但是考虑到,权值最大的点可能不止一个,于是此做法失效。 考虑设$dp_u$表示在$u$的子树内,必定选取点 ...
转载
2021-09-13 08:14:00
81阅读
2评论
题意:给长度为n的序列,要填充-1,使得不出现长度为m的元素相同的子串(下称非法子串),其中数字的范围均在1-k一开始想的是O(n)的做法,只对每个-1的段进行考虑,然后各种挂,最后发现相邻的-1的段会相互影响,然后就绝望了。。然后只能向O(nk)的方法低头了。。这个就比较简单了,设d[i][j]为第i位填j的方案数,然后如果[i-m+1,i]能形成相同的元素,那么做个容斥就能把非法情况去掉了,即
原创
2022-08-31 18:18:29
46阅读
可以表示成若干个正整数之和,形如:n=n1+n2+…由于答案可能很大,输出结果请对 109+7。共一行,包含一个整数,表示总划分数量。,其中 n1≥n2≥…我们将这样的一种表示称为正整数 n。共有多少种不同的划分方法。共一行,包含一个整数 n。现在给定一个正整数 n。
原创
2023-04-01 20:41:05
119阅读