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]);
}
}
Java 传球游戏 动态规划
最新推荐文章于 2024-04-30 17:28:01 发布