Problem Description
威威猫十分迷恋篮球比赛,是忠实的NBA球迷,他常常幻想自己那肥硕的身躯也能飞起扣篮。另外,他对篮球教练工作也情有独钟,特别是对比赛的战术,投篮选择方面也是很有研究,下面就是威威猫研究过的一个问题:
一场NBA篮球比赛总共48分钟,假如我们现在已经知道当前比分 A:B,A代表我方的比分,B代表对方的比分,现在比赛还剩下t秒时间。我们简单的认为双方各自进攻一次的时间皆固定为15秒(不到15秒则进攻不得分),且为交替进攻,即我方进攻一次,接着对方进攻,依次循环。
进攻有三种选择方式:(这里不考虑命中率)
1、造犯规,(假设都两罚一中)得1分;
2、中距离投篮得2分;
3、三分球得3分。
为了简化问题,假设在对方回合,由于我方防守比较好,只让对手得1分,且为固定,即对方的进攻回合就为每回合得1分。现在比赛进入最后关头,接下来第一个回合是我方进攻,现在威威猫想要知道教练有多少种不同的选择能使我方可能赢得比赛(可能的意思就是不考虑命中率的情况)。
Input
输入有多组数据(不超过250组);
每组数据包含3个整数A,B和t,其中A和B 表示当前的比分(0 <= A, B <= 200),t表示还剩多少时间(单位秒 0 <= t <= 600)。
Output
请输出可行的方案数,每组数据输出占一行。
Sample Input
88 90 50
Sample Output
6
Hint
样例解析:
当前比分是88:90,还剩50秒则对方还最多有一次进攻机会(最后5秒进攻不成功),我方有两次,对方的最终得分将是91,我方至少在两回合中拿到4分才能胜利,所以所有方案数是6种,即:
第一球第二球
1 3
2 2
2 3
3 1
3 2
3 3
Java代码,递归实现:
package test; public class HackthonMain { public HackthonMain(){} public static void main(String[] args) throws Exception { CalcWinSolution(88,90,50); } private static int count = 0; //A赢B的方案数量 private static Boolean shortOneRound = false; //B比A是否少一轮 public static void CalcWinSolution(int sa, int sb, int remain_t) throws Exception{ final int round_t = 30; //一回合的时间(s) int my_round = (remain_t/round_t); //A方所剩余的回合数 if(((remain_t%round_t)-15)>=0) { my_round++; shortOneRound = true; } int diffscore = sa-sb; //A比B多的分数, if(diffscore>=0){ System.out.println(Math.pow(3, my_round)); } else if((diffscore+(my_round*3))<0){ System.out.println(0); } else{ //diffscore<0 CalcWinTimes(diffscore,my_round); System.out.println(count); } } public static void CalcWinTimes(int diffscore,int round) throws Exception{ if(round==0){ //不剩余任何回合数 if(shortOneRound) diffscore++; if(diffscore>0) count++; return; } else if(round<0){ throw new Exception("round < 0"); } else{ if((round-1)>=0){ CalcWinTimes(diffscore+3-1,round-1); CalcWinTimes(diffscore+2-1,round-1); CalcWinTimes(diffscore+1-1,round-1); } } } }
相关推荐
威威文管器(文件管理软件)是一款十分优秀的文件管理系统软件。如何管理文件?威威文管器(文件管理软件)为用户轻松管理。是现代办公必备软件。威威文管器为每个文件提供多达五个信息摘要,巧妙记录文档的来龙去脉,并...
校园二手书交易网站设计与制作_张威威.caj
声人工结构对声波的调控研究_阚威威.caj
红5red51.0.9红5red51.0.9红5red5红5red51.0.91.0.9红5red51.0.9
ASP源码,压缩包解压密码:www.cqlsoft.com
逆变器硬件设计 很好很强大,关于新能源与微电网技术的
内容全面,详尽地剖析了windows pe文件格式的原理及其编程技术,涉及安全领域的各个方面和windows系统的进程管理和底层机制;实战性强,以案例驱动的方式讲解了windows pe文件格式在加密与解密、软件汉化、逆向工程...
基于深度学习算法的图像集识别.pdf
本系统本人开发,仅供学习,武汉理工大学黎威威
简易的银行卡系统 由武汉理工大学计算机学院黎威威编写 严禁作为商业用途
微信分享完整demo,带appid,同时有签名文件,下载可用
前端框架:Bootstrap 5 博客网站,主要包含如下几个功能模块: 1、登录页面: 其中需要登录,校验,登录后同时需要存储用户信息在Session中,以备登录后的页面使用。 2、注册页面: 提供注册信息表单,提交注册通过...
1、打开Auto.js(该软件的相关用法就不细说了,无障碍,悬浮窗权限这些),右下角导入脚本 2、打开淘宝,进入活动页面,点开任务列表界面 3、点击Auto.js悬浮窗,点击脚本列表按钮 4、点击运行按钮
课程设计报告格式及要求: 课程设计作业要求: (1)以《****数据库系统的设计与实现》为题目完成课程设计报告,内容及写法可以参照教材 。 (2)所选应用系统不能与...5.创建视图、存储过程、触发器等的主要代码
里面包含几百个51的例子,如典型的抢答器、万年历、交通灯、智能温控器、最小系统、 直流电机PI控制和基础的各种实验。
QEMU设备模拟支持:以I2C为例PLCT实验室 李威威目录QEMU QOM设备模拟QEMU I2C支持机制HOST设备虚拟化QEMU QOM设备支持• QOM
本资源基于Python + Django实现学生信息管理系统的源码。 简单的包装下毕设应该没问题了。 使用方法: 1、下载本资源并解压 2、在项目文件夹下输入命令:pip install -r requirements.txt 安装相关包 ...
主要原理: 对listview的某一个item进行刷新 1.要获取要刷新的item当前索引position和数据 2.对获取的数据进行重置 ...5.从更新过的数据集中获取新数据,更新viwe中的数据(handler中操作,实现界面的刷新)
udf动态接触角
PPT模板欧美风格下16套.zipPPT模板欧美风格下16套.zipPPT模板欧美风格下16套.zipPPT模板欧美风格下16套.zipPPT模板欧美风格下16套.zipPPT模板欧美风格下16套.zip