Luogu-P1057传球游戏(dp)

含多个递推公式
#include
#include
using namespace std;
int main(){
	int n,m,dp[40][40];
	memset(dp,0,sizeof(dp));
	dp[1][0]=1;
	cin>>n>>m;
	for(int k=1;k<=m;k++){
		dp[1][k]=dp[2][k-1]+dp[n][k-1];//需要特判
		dp[n][k]=dp[1][k-1]+dp[n-1][k-1];
		for(int j=2;j<=n-1;j++){
			dp[j][k]=dp[j+1][k-1]+dp[j-1][k-1];
		}
		//dp[1][k]=dp[2][k-1]+dp[n][k-1];//写这里也可以
		//dp[n][k]=dp[1][k-1]+dp[n-1][k-1];
	} 
	cout<

你可能感兴趣的:(acm_动态规划)