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]);
		}
	}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值