[ 洛谷]P1057 [NOIP2008 普及组] 传球游戏

dp一次ac,比较简单。思路也比较明细

就是第i次传球,球在j同学手上的情况,为第i-1次传球,球在j+1和j-1同学情况的和

f(i,j)=f(i-1,j-1)+f(i-1,j+1)

注意1和n的边界情况单独讨论,具体看代码

#include 
#define N 100
using namespace std;
int i, j, k;
int n, m;
int ans;int f[10000][10000] = {0}; //传第i次时,球在j同学的情况。int main() {cin >> n >> m;f[0][1] = 1;for (i = 1; i <= m; i++)for (j = 1; j <= n; j++) {if (j == 1)f[i][j] = f[i - 1][j + 1] + f[i - 1][n];else if (j == n)f[i][j] = f[i - 1][1] + f[i - 1][j - 1];elsef[i][j] = f[i - 1][j + 1] + f[i - 1][j - 1];}cout << f[m][1];}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部