【DP】 HDU 3689 Infinite monkey theorem 预处理

点击打开链接

题意:一只猴子可以有n个键 可以敲m下

求能敲出目标串的概率。

思路:可以先求不能敲出目标串的概率

用 dp[i][j] 表示 敲第 i 下时, 得到 目标串  j  结尾 的概率   

 例: 目标串 word    

wcwor   这是dp[ 5 ][ 3 ] 的状态。。


如果目标串是 aaaaabaaaa   这样的 

 就会转移到奇怪的地方。。


所以先预处理出 每个状态转移的下个状态

然后很方便的算出来了。。

#include 
using namespace std;
typedef long long LL;
typedef pair PI;
double p[123];
double dp[1200][20];
int to[12][134];
int main()
{
    int n,m;
    while(scanf("%d%d",&n,&m),n+m)
    {
        memset(dp,0,sizeof(dp));
        memset(p,0,sizeof(p));
        for(int i=0;i


你可能感兴趣的:(DP)