计数DP
文章平均质量分 65
BraketBN
这个作者很懒,什么都没留下…
展开
-
【BZOJ1898】[Zjoi2005]Swamp 沼泽鳄鱼【DP】【矩阵乘法】
http://www.lydsy.com/JudgeOnline/problem.php?id=1898论文题,详见《矩阵乘法在信息学中的应用》俞华程。样例果然弱...提供一组数据:Input0:5 10 0 1 21 34 30 41 42 40 21 20 13 02 323 1 3 04 4 3 2 1Output0:2原创 2016-03-15 17:15:02 · 634 阅读 · 0 评论 -
【BZOJ1025】[SCOI2009]游戏【计数DP】【质因数分解】【置换】
【题目链接】只想到求和为n的数的lcm了...以为要求lcm然后离散化dp,最后发现1到1000的lcm已经炸了,然后就无奈了...iwtwiioi神犇说的非常清晰【链接】/* Footprints In The Blood Soaked Snow */#include #include using namespace std;typedef unsigned long原创 2016-03-27 20:54:20 · 729 阅读 · 0 评论 -
【BZOJ3294】[Cqoi2011]放棋子【计数DP】
【题目链接】设g[k][i][j]表示第k种颜色恰好占据了i行j列,即没有一行或一列是空的。那么有g[k][i][j] = C[i * j][cnt[k]] - ∑(g[k][x][y] * C[i][x] * C[j][y]),注意1 设f[k][i][j]表示前k种颜色恰好占据了i行j列。那么有f[k][i][j] = ∑(f[k - 1][x][y] * g[原创 2016-04-09 17:44:08 · 371 阅读 · 0 评论 -
【BZOJ1079】[SCOI2008]着色方案【计数DP】【奇怪的姿势】
【题目链接】想了一天多,感觉似乎只能是5^15。看了一下题解,发现还能这么玩...神奇的题。【iwtwiioi的题解】/* Footprints In The Blood Soaked Snow */#include using namespace std;typedef unsigned long long ULL;const int maxn = 16,原创 2016-03-29 10:16:17 · 543 阅读 · 0 评论 -
【UOJ#149】【NOIP2015】子串【计数DP】
【题目链接】设dp[k][i][j]表示划分成k份,处理到A串的第i个字符,B串的第j个字符的方案数。考虑A[i], B[j]能否和A[i - 1], B[j - 1]一组,然后转移就行了。转移里有个前缀和,转移时候同时递推算出来,就可以O(1)转移了。【geng4512的题解】/* Pigonometry */#include #include #inclu原创 2016-04-15 09:46:08 · 470 阅读 · 0 评论 -
【BZOJ4562】[Haoi2016]食物链【DP】【DAG】【拓扑排序】
【题目链接】傻逼题。/* Pigonometry */#include #include using namespace std;const int maxn = 100005, maxm = 200005, maxq = 200000;int n, m, head[maxn], cnt, in[maxn], out[maxn], dp[maxn], q[maxq]原创 2016-04-27 21:57:27 · 1174 阅读 · 0 评论 -
【BZOJ1197】[HNOI2006]花仙子的魔法【递推】
【题目链接】【VFK的题解】边界条件可以用样例推出来。首先m = 0时是1(即空空间)然后n = 1时是m * 2(用样例画一画)由递推式可以得到n = 0时是2。/* Telekinetic Forest Guard */#include #include #include using namespace std;typedef long long LL;原创 2016-05-24 17:41:01 · 444 阅读 · 0 评论 -
【BZOJ2660】[Beijing wc2012]最多的方案【找规律】【计数DP】【二进制】【Fibonacci】
【题目链接】果然还是打表找规律比较靠谱。【heheda的题解】%一发正在省选中的SD神犇。/* Telekinetic Forest Guard */#include #include #include using namespace std;typedef long long LL;const int maxn = 105;int pos[maxn], to原创 2016-05-14 09:46:48 · 822 阅读 · 0 评论 -
【BZOJ3612】[Heoi2014]平衡【计数DP】【整数拆分】
【题目链接】【tunix的题解】枚举力矩和、拿走橡皮的个数,然后就变成整数拆分问题了。/* Telekinetic Forest Guard */#include #include #include using namespace std;const int maxn = 10005, maxk = 12;int n, k, p, dp[maxn * maxk][原创 2016-05-30 16:42:24 · 724 阅读 · 0 评论 -
【BZOJ3622】已经没有什么好害怕的了【计数DP】【姿势】
【题目链接】【dyllalala的题解】说下我个人的理解...先把两个数组排序,设next[i]表示满足第i个糖果>第j个药片的最大的j。显然这个next是单调的,可以O(n)求出。设dp[i][j]表示前i个糖果里,至少有j组糖果>药片(即这j组以外的其他情况都不考虑)的方案数。考虑第i个糖果,有两种转移:(1)不管,dp[i][j] = dp[i - 1][j]原创 2016-04-23 08:39:11 · 385 阅读 · 0 评论 -
【BZOJ2614】梦的困境【质因数分解】【背包】【GCD】
【题目链接】%段少,【lowsfish的题解】学习一发神奇的背包。不知道为什么要开LL。/* Pigonometry */#include #include #include using namespace std;typedef long long LL;const int maxn = 205, maxm = 200005;int cnt;原创 2016-04-08 09:10:29 · 484 阅读 · 0 评论 -
【BZOJ1037】[ZJOI2008]生日聚会Party【计数DP】【特殊的姿势】
【题目链接】设dp[i][j][k1][k2]表示前i个男生,前j个女生,男生比女生最多多k1个,女生比男生最多多k2个。有两种决策,(1)在下一个位置放男生,那么有dp[i + 1][j][k1 + 1][max(k2 - 1, 0)] += dp[i][j][k1][k2]。(2)在下一个位置放女生,那么有dp[i][j + 1][max(k1 - 1, 0)][k2 +原创 2016-03-23 07:48:36 · 432 阅读 · 0 评论 -
【POJ3093】Margaritas on the River Walk【01背包变种】
【题目链接】大意:给定一个容量为V的背包和N件物品各自的体积,求有多少种方法使得背包再也装不下任何物品。论文题,见《浅谈几类背包题》徐持衡。另外这篇题解写得不错【浙西贫农的题解】一开始不理解为什么这样做可以保证不取前面的物品,最后发现倒着循环时,dp还没有统计前面物品的方法数.../* Pigonometry */#include #include usin原创 2016-04-03 22:56:18 · 408 阅读 · 0 评论 -
【Codeforces621E】Wet Shark and Blocks【矩阵乘法】【DP】
http://codeforces.com/problemset/problem/621/Etrans[i][j]表示余数从i到j的方案数,那么有trans[i][j] = ∑trans[i][k]*trans[k][j],显然是个矩阵乘法,用快速幂优化一下就好了。/* Footprints In The Blood Soaked Snow */#include ty原创 2016-03-17 07:33:54 · 713 阅读 · 0 评论 -
【LA3942】Remember the Word【Trie】【计数DP】
https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&category=22&page=show_problem&problem=1943大白上的题。设dp[i]表示后缀S[i...L]的分解方案数,那么有dp[i] = ∑(dp[i + len(x)),单词x是S[i...L]的前缀。原创 2016-03-18 10:35:33 · 408 阅读 · 0 评论 -
【SPOJ-MYQ5】The Nerd Factor【计数DP】
题意:n个人分组,每组不少于k个人,求方案数。先O(n^2)预处理,然后O(1)回答就好。#include const int maxn = 1001, p = 1000000007;int dp[maxn][maxn];inline int iread() { int f = 1, x = 0; char ch = getchar(); for(; c原创 2016-02-22 14:38:53 · 793 阅读 · 3 评论 -
【BZOJ1030】[JSOI2007]文本生成器【AC自动机】【计数DP】
http://www.lydsy.com/JudgeOnline/problem.php?id=1030AC自动机经典题型,数据不大,不用矩阵快速幂优化。/* Footprints In The Blood Soaked Snow */#include #include #define cls(a, x) memset(a, x, sizeof(a))using namesp原创 2016-03-19 14:36:53 · 584 阅读 · 0 评论 -
【Codeforces659G】Fence Divercity【数学】【计数DP?】
【题目链接】题意:给出一些积木,现在可以拿走一些积木,但是拿走一个积木的要求是该积木上面的积木都被拿走,并且要求拿走的积木构成的阴影图是连通的。最底下一层不能拿走。求方案数。其实是个数学计数问题,题解说的很详细了,不多说了。/* Footprints In The Blood Soaked Snow */#include #include using namespace原创 2016-03-31 22:48:43 · 815 阅读 · 0 评论 -
【SPOJ-LCM】The Time of Day【计数DP】【离散化】
题意:从1到n这n个数中选出一些数,使得它们的lcm不小于M。(n 暴力枚举O(2^n)肯定不行,所以用质因数分解优化一下。先预处理出lcm(1, 2, ..., 40)的质因数分解情况,发现2有6种取值,3有4种,5有3种,7有2种,11有2种,...,37有2种。所以lcm一共有36864种取值(但是取值非常大,所以先离散化),于是按离散化后的lcm的取值进行计数dp。原创 2016-02-23 18:03:07 · 596 阅读 · 0 评论 -
【SPOJ-MAIN75】BST again【计数DP】【记忆化搜索】
题意:节点个数为n,编号分别为1到n,高度为h,求排序二叉树的个数。一开始写了个预处理DP,结果TLETLETLETLETLE...然后发现可以写记忆化搜索...当前二叉树的方案数等于左子树的方案数×右子树的方案数...然后就可以记忆化搜索了。#include typedef unsigned int uint;typedef unsigned l原创 2016-02-23 21:22:48 · 582 阅读 · 0 评论 -
【BZOJ1042】[HAOI2008]硬币购物【计数DP】【容斥原理】
【题目链接】设dp[x]表示不限制硬币使用次数时,和为x的方案数。这个显然可以用背包求出来。因为只有4种硬币,考虑容斥原理。设事件A表示限制第一种硬币的次数时的方案数,事件BCD同理。如果要凑S块钱,那么有左边是我们要求的答案,右边是用容斥原理展开的式子。现在只需要解决如何求括号里的那些。(1)对于只有一种硬币的限制,比如dp[A]:假设第一原创 2016-04-02 09:36:20 · 324 阅读 · 0 评论 -
【SPOJ-ACODE】Alphacode【计数DP】
题意:一些没有空格间隔的数,若1对应A,2对应B,...,26对应Z,问有多少种对应的字符串。很简单的DP。注意0的处理。#include #include #include using namespace std;typedef unsigned long long ULL;const int maxn = 5005;int n;UL原创 2016-02-25 17:31:52 · 551 阅读 · 0 评论 -
【BZOJ1638】[Usaco2007 Mar]Cow Traffic 奶牛交通【DAG】【拓扑排序】【DP】
【题目链接】对于一条边(u, v),经过这条边的次数为(1到u的路径个数)*(v到n的路径个数)。正反跑两次拓扑序,然后枚举边,统计答案。一开始以为(1到u的路径个数)就是经过边(u, v)的次数,结果WA啦。/* Telekinetic Forest Guard */#include #include #include #include using names原创 2016-05-31 16:27:54 · 883 阅读 · 0 评论