Tyvj 1008 传球游戏 dp

#include
#include
#include
using namespace std;
#define N 35
int dp[N][N];
int main(){
	int n,m;
	while(scanf("%d%d",&n,&m)!=EOF){
		memset(dp,0,sizeof(dp));
		dp[0][1]=1;
		for(int i=1;i<=m;i++){
			for(int j=1;j<=n;j++){
				if(j==1){
					dp[i][j]=dp[i-1][n]+dp[i-1][j+1];
				}
				else if(j==n){
					dp[i][j]=dp[i-1][j-1]+dp[i-1][1];
				}
				else{
				dp[i][j]=dp[i-1][j+1]+dp[i-1][j-1];
				}
			}
		}
		printf("%d\n",dp[m][1]);
	}
	return 0;
}
动态规划:对于当前次数当前位置,可以是从当前位置的左右+1次传递到来这两种可能性。。

你可能感兴趣的:(dp)