Java 传球游戏 动态规划

	import java.util.*;
	import java.math.*;
	
	public class Main {		
		public static void main(String[]args) {
//			Dp[i][j] 第i名球员在第j次接球时 有n种传给自己的顺序
			Scanner in = new Scanner(System.in);
			int n = in.nextInt(), m = in.nextInt();
			int[][] Dp = new int[n + 1][m + 1];
			Dp[2][1] = 1;Dp[n][1] = 1;
			Dp[1][m] = 1;
			for(int i = 2 ; i <= m ; ++ i) {
				for(int j = 1 ; j <= n ; ++ j) {
//					正常情况第j个球员第i次接球只能是其左右两个球员的传球 第1个和最后一个做特别情况
					if(j == 1)Dp[1][i] = Dp[n][i - 1] + Dp[2][i - 1];
					else if(j == n)Dp[n][i] = Dp[n - 1][i - 1] + Dp[1][i - 1];
					else Dp[j][i] = Dp[j + 1][i - 1] + Dp[j - 1][i - 1];
				}
			}
			System.out.print(Dp[1][m]);
		}
	}


版权声明:本文为qq_52209929原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。