![P1057 [NOIP2008 普及组] 传球游戏 ,第1张 P1057 [NOIP2008 普及组] 传球游戏 ,第1张](/aiimages/P1057+%5BNOIP2008+%E6%99%AE%E5%8F%8A%E7%BB%84%5D+%E4%BC%A0%E7%90%83%E6%B8%B8%E6%88%8F+.png)
添加链接描述
dp表示 传递i次后第j个人的方案数
当前人的方案数等于左边或者右边传递的总和
#include
using namespace std;
const int N=35;
int dp[N][N];
int main(){
int n,m;
cin>>n>>m;
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][2];
}
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];
}
}
}
cout<<dp[m][1]<<"\n";
return 0;
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)