LuoguP1057 传球游戏 题解

用 for 循环特别的处理两个边界点,这样的话,代码就只有 16 行,特别简单。

#include <bits/stdc++.h>
using namespace std;

int a[100][100],m,n;
int main() {
	cin>>n>>m;
	a[1][0]=1;
	for(int j=1; j<=m; j++) {
		for(int i=2; i<n; i++)	//处理两个边界点
			a[i][j]=a[i-1][j-1]+a[i+1][j-1];
		a[1][j]=a[n][j-1]+a[2][j-1];
		a[n][j]=a[n-1][j-1]+a[1][j-1];
	}
	cout<<a[1][m];
	return 0;
}
上一篇:命名空间


下一篇:C#