poj 2537 动态规划
题目描述:
一段文章仅由0 ~k
问文章长度n时,合法的文章占所有文章的百分比。
解题报告:
dp[i][j] = dp[i - 1][j] + dp[i - 1][j + 1] + dp[i - 1][j - 1];
dp[i][j]表示文章第i个数字是j时的情况种数。
那么第i位的数字种数的和sum,再除以所有种数(k+1)^n就是答案。
代码:
#include<iostream>
#include<fstream>
#include<cmath>
using namespace std;
double dp[20][200];
void read(){
// ifstream cin("in.txt");
int i,j,k;
int n,m;
while(cin>>n>>m){
memset(dp,0,sizeof(dp));
n++;
for(i=1;i<=n;i++)
dp[i][1]=1;
for(i=2;i<=m;i++)
for(j=1;j<=n;j++)
dp[j][i]=dp[j][i-1]+dp[j-1][i-1]+dp[j+1][i-1];
double sum=0;
for(i=1;i<=n;i++)
sum+=dp[i][m];
printf("%.5lf\n",100*sum/pow(1.*n,1.*m));
}
}
浙公网安备 33010602011771号