递推
Bahuia
软件工程博士
展开
-
51Nod - 1639 递推
题意: 有n根鞋带混在一起,现在重复n次以下操作:随机抽出两个鞋带头,把它们绑在一起。可以想象,这n次之后將不再有单独的鞋带头,n条鞋带系成了一些环。那么有多大概率刚好所有这些鞋带只形成了一个环? Input 仅一行,包含一个整数n (2 Output 输出一行,为刚好成环的概率。 Input示例 2 Output示例 0.666667原创 2017-01-26 09:40:59 · 404 阅读 · 0 评论 -
HDU - 2174 博弈基础
题意: 一个n*m个格子的棋盘上在(1,m)位置上有一枚棋子,这枚棋子每次可以向下,或向左,或向左下角移动一格,a和b进行移动棋子的游戏,a先移动,最后无法移动的人输,问在两个人都是最优操作的情况下,最后谁会赢。 思路: 为了方便考虑,我们定义棋子先(n,m)移动到(1,1),f[1][1]就是终结点,也就是必败点。最后的答案就是f[n][m],然后根据必胜点和必败点的规则,依次往后递推原创 2017-03-16 12:13:31 · 599 阅读 · 0 评论 -
HDU 6030 DP + 矩阵快速幂
题意:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6030 有红蓝两种颜色的珠子构成一个串(不是环),需要满足在任意长度为素数的区间内,红色珠子数目都要不小于蓝色珠子数目,问长度为n的情况下一共有多少种可能组成的项链。思路:递推。dp[i][0]表示长度为i且末尾为蓝色珠子的方案数,dp[i][1]表示长度为i且末尾为红色珠子的方案数,可以得到转移原创 2017-07-16 16:28:49 · 331 阅读 · 0 评论 -
HDU 2049 错排问题dp
题意:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2049 中文题。思路:错排dp的经典题。 设dp[i][j]表示1~i个人中有j个人找错了自己的新娘,那么考虑第i个人,有三种可能性: 他找对了自己的新娘,那么应该从dp[i-1][j]转移过来 他找错了自己的新娘,而且是和之前找错的人互换新娘,此时两个都错,不过与他交换的那个人之前已经错了,所原创 2017-07-24 10:30:19 · 488 阅读 · 0 评论 -
Codeforces 340E 错排问题dp
题意:给出一串长度为n的序列a,将1~n填入序列中-1的位置,使得整个序列是一个1~n的排列,而且保证a[i]!=i,问一共有多少种构造方案。思路:错排问题,这里有了限制条件,有些位置已经被数字填过。 这里将数字分成不同的类型: 已经被用过的数不用考虑 没有被用过的数,但自己的位置已经被占用,这种数为无限制数,因为可以填在任意-1的位置,这样的数有cnt2个 没有被用过的数,而且自己的位置没有被占原创 2017-07-24 10:52:52 · 591 阅读 · 0 评论 -
FZU 2282 错排问题dp
题意:题目链接:http://acm.fzu.edu.cn/problem.php?pid=2282 求1~n的全排列a中,a[i]==i的位置数目>=k的方案数有多少。思路:基础错排dp,与HDU 2049几乎完全一样,多了一个前缀和的操作。代码:#include <cstdio> using namespace std; typedef long long LL; const int MAXN原创 2017-07-24 16:33:15 · 544 阅读 · 0 评论