博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU-4504 威威猫系列故事——篮球梦
阅读量:4123 次
发布时间:2019-05-25

本文共 2045 字,大约阅读时间需要 6 分钟。

#include 
#include
#include
using namespace std;const int round_max = 20 + 5;const int grade_max = 20 * 3 + 5;long long dp[round_max][grade_max]; //表示 第i回合 获得 j分 的 方法数目int a, b, t;long long ans;void DP(){ memset(dp, 0, sizeof(dp)); dp[1][1] = dp[1][2] = dp[1][3] = 1; //从这种初始状态开始状态转移 for(int i = 2; i < round_max; i ++) { for(int j = 1; j < grade_max; j ++) { if(j > 1) dp[i][j] += dp[i - 1][j - 1]; if(j > 2) dp[i][j] += dp[i - 1][j - 2]; if(j > 3) dp[i][j] += dp[i - 1][j - 3]; } }}int main(){ DP(); while(~scanf("%d %d %d", & a, & b, & t)) { int sum_round, a_round, b_round; sum_round = t / 15; b_round = sum_round / 2; a_round = sum_round - b_round; if(a + a_round * 3 <= b + b_round) //表示不管如何得分 最后a都不可能获胜 { printf("0\n"); continue; } int a_b = b_round + b - a; //计算 b最终 与 a初始 的差值 if(a_b < 0) //如果差值小于0 则说明a已经赢了 { if(sum_round == 0) //总回合数为0 则不能继续进行比赛 直接获胜输出1 { printf("1\n"); continue; } else //总回合数不为0 则后面不管怎样 都是a获胜 a_b = 0; } ans = 0; for(int i = a_b + 1; i < grade_max; i ++) ans += dp[a_round][i]; printf("%I64d\n", ans); } return 0;}

题意:

  一场NBA篮球比赛总共48分钟,假如我们现在已经知道当前比分 A:B,A代表我方的比分,B代表对方的比分,现在比赛还剩下t秒时间。我们简单的认为双方各自进攻一次的时间皆固定为15秒(不到15秒则进攻不得分),且为交替进攻,即我方进攻一次,接着对方进攻,依次循环。

  进攻有三种选择方式:(这里不考虑命中率)
  1、造犯规,(假设都两罚一中)得1分;
  2、中距离投篮 得2分;
  3、三分球 得3分。
  为了简化问题,假设在对方回合,由于我方防守比较好,只让对手得1分,且为固定,即对方的进攻回合就为每回合得1分。现在比赛进入最后关头,接下来第一个回合是我方进攻,现在威威猫想要知道教练有多少种不同的选择能使我方可能赢得比赛(可能的意思就是不考虑命中率的情况)。输入有多组数据(不超过250组);每组数据包含3个整数A,B和t,其中A和B 表示当前的比分(0 <= A, B <= 200),t表示还剩多少时间(单位秒 0 <= t <= 600)。请输出可行的方案数,每组数据输出占一行。

题解:

ans必须用long long,用int会超范围。

状态转移:
dp[i][j]表示前i回合获得j分的方法数
dp[i][j]=dp[i-1][j-1]+dp[i-1][j-2]+dp[i-1][j-3]。

转载地址:http://lctpi.baihongyu.com/

你可能感兴趣的文章
Linux下Oracle数据库账户被锁:the account is locked问题的解决
查看>>
记CSDN访问20万+
查看>>
Windows 环境下Webstorm 2020.3 版本在右下角找不到Git分支切换部件的一种解决方法
查看>>
Electron-Vue项目中遇到fs.rm is not a function问题的解决过程
查看>>
飞机换乘次数最少问题的两种解决方案
查看>>
有向无回路图的理解
查看>>
设计模式中英文汇总分类
查看>>
WPF实现蜘蛛纸牌游戏
查看>>
单例模式
查看>>
工厂方法模式
查看>>
模板方法模式
查看>>
数据结构之队列、栈
查看>>
数据结构之树
查看>>
数据结构之二叉树
查看>>
二叉树非递归遍历算法思悟
查看>>
红黑树算法思悟
查看>>
从山寨Spring中学习Spring IOC原理-自动装配注解
查看>>
实例区别BeanFactory和FactoryBean
查看>>
Spring后置处理器BeanPostProcessor的应用
查看>>
Spring框架的ImportSelector到底可以干嘛
查看>>