Time Limit: 1 second

Memory Limit: 128 MB

【问题描述】

我们当中有很多热爱中国足球的同学,我们都知道中超(中国足球超级联赛)的规则:

一场比赛中,若获胜(即你的得分严格大于对手得分)则获得3的积分,若打平(即你的得分等于对手得分)则获得1分,若失败(即

你的得分严格小于对手得分)获得0积分。

这个问题很简单,假设N轮比赛中你一共攻入S个球,丢掉T个球,那么你可能获得的最大得分和最小得分是多少?

【输入格式】

多组数据,每组数据一行:

一行三个整数S、T、N(S、T >= 0,N >= 1)。

【输出格式】

对于每组数据输出一行,两个整数表示最大得分和最小得分。

Sample Input

  1. 1 1 1
  2. 1 1 2

Sample Output

  1. 1 1
  2. 3 2
  1.  
  2. 【题解】
  3.  
  4. 神经病一样的题。
  5.  
  6. 没有严密的思维根本写不出来好吗。
  7.  
  8. 最好的情况要从最好到次好判断
  9.  
  10. 最坏的情况则要从最坏到次坏这样。。
  11.  
  12. 然后总体的思路就是如果能全赢则是最好的。否则就尝试在第一场就把所有球都丢掉。剩余的看一下能不
  13.  
  14. 能用进的球填满(每场只填1个球)。如果填不满就只好平局啦。
  15.  
  16. 然后最坏情况是全都输(如果可以)。或者是第一场把所有的进球都进了。然后剩余n-1场全输。。。
  17.  
  18. 哎,没有这么简单。还要判断的一些小细节很多。总之很恶心。。看注释吧。
  19.  
  20. 【代码】
  21. #include <cstdio>
  22. __int64 s, t, n;
  23. int main()
  24. {
  25. 	while (scanf("%I64d%I64d%I64d", &s, &t, &n) != -1)
  26. 	{
  27. 		__int64 perfect, bad;
  28. 		if (n == 1) //如果只有一场比赛。直接进行特判就好。
  29. 		{
  30. 			if (s > t)
  31. 				printf("3 3\n");
  32. 			else
  33. 				if (s == t)
  34. 					printf("1 1\n");
  35. 				else
  36. 					if (s < t)
  37. 						printf("0 0\n");
  38. 			continue;
  39. 		}
  40. 		if ((s + t) == 0) //如果一个球都没进,也一个球都没丢。则全是0:0
  41. 		{
  42. 			printf("%I64d %I64d\n", n, n);
  43. 			continue;
  44. 		}
  45. 		if (s == 0) //如果一个球都没进
  46. 		{
  47. 			//最好就是在第一场把t分全部输掉。其余场都是0:0 ,上面s+t==0已结排除一个球都没丢的情况。
  48. 			perfect = n-1;
  49. 			//最坏的话要分情况。
  50. 			if (t >= n) //如果输的球足够每一场都分配一个则得0分
  51. 				bad = 0;
  52. 			else //否则少于的部分只能是0:0了。即平局。
  53. 				bad = n - t;
  54. 		}
  55. 		else
  56. 			if (t == 0)//如果一个球都没丢
  57. 			{
  58. 				//最好的情况也要分类
  59. 				if (s >= n) //如果进的球数足够每一场都分一个
  60. 					perfect = 3 * n;//每一场都赢
  61. 				else //不够分到每一场
  62. 					perfect = (n - s)+3*s;//有些场只能平局了。
  63. 				//最坏的情况就是全都在第一场进的。其余场都是平局
  64. 				bad = 3 + (n - 1);
  65. 			}
  66. 			else
  67. 				if (s <= t) //如果进球数小于丢球数
  68. 				{
  69. 					//最好的情况是,第一场把t个球丢掉。然后s足够给剩余n-1场每场分配一个球,即胜n-1场)
  70. 					if (s >= n - 1)
  71. 						perfect = 3 * (n - 1);
  72. 					else //次好则是 s不够分n-1场。则n-1场中有一些平局。
  73. 						perfect = 3 * s + (n - 1) - s;
  74. 					//接下来考虑最坏的情况。
  75. 					if (s == 1 && n >= t) //如果只进了一个球且输球数没有超过n
  76. 						bad = 1 + n - t;//把这t个球分配到t场中。这t场除了一场1:1平之外其他场都输,然后另外n-t场为0:0平
  77. 					else//注:这里不先考虑t-s>=n是因为如果t小于n,后者是不可能成立的。然后该情况比让对方赢一场的其余都输
  78. 						//可能会更差。
  79. 						//下面就是按照bad递增来枚举的。
  80. 						if (t - s >= n)//如果总输球数大于等于n了。则可以n场每场都至少输1球。
  81. 							bad = 0;//即全都可以输
  82. 						else
  83. 							if (t - s == n - 1)//如果只有n-1场能输,剩下一场只好平了。
  84. 								bad = 1;
  85. 							else
  86. 								if (t - s == n - 2)//如果只有n-2场能输,剩余2场只好平了。
  87. 									bad = 2;
  88. 								else
  89. 									if (t >= n - 1)//如果在第一场把s个球踢进。赢一场。其余n-1场全部输掉。
  90. 										bad = 3; //最坏情况为3
  91. 									else //如果剩余t个输球不够填满n-1场。则剩余的平局
  92. 										bad = 3 + (n - 1) - t;
  93. 				}
  94. 				else //如果进球数大于丢球数
  95. 				{
  96. 					if (s - t >= n) //如果每一场都能至少赢一球
  97. 						perfect = 3 * n;//这里的perfect也是按照perfect递减来枚举的。
  98. 					else
  99. 						if (s - t == n - 1) //如果能n-1场都至少赢一球 ,另外一场平局
  100. 							perfect = (s - t) * 3 + 1;
  101. 						else
  102. 							if (s >= n - 1) //如果能第一场输t分,然后其余n-1场每场都至少赢1球。
  103. 								perfect = 3 * (n - 1);
  104. 							else //如果不够的话n-1场里会有几场是平的。
  105. 								perfect = 3 * s + (n - 1) - s;
  106. 					//然后是最坏情况。
  107. 					//即第一场把s球全部踢进.然后看一下丢球数够不够填满n-1场。
  108. 					if (t >= n - 1)
  109. 						bad = 3;
  110. 					else //不够的话就是平局了。
  111. 						bad = 3 + (n - 1) - t;
  112. 				}
  113. 		printf("%I64d %I64d\n", perfect, bad);
  114. 	}
  115. 	return 0;
  116. }

【t049】&&【u001】足球的更多相关文章

  1. 白话贝叶斯理论及在足球比赛结果预测中的应用和C#实现

    离去年“马尔可夫链进行彩票预测”已经一年了,同时我也计划了一个彩票数据框架的搭建,分析和预测的框架,会在今年逐步发表,拟定了一个目录,大家有什么样的意见和和问题,可以看看,留言我会在后面的文章中逐步改 ...

  2. .NET足球赛事资料数据库平台SmartLottery开源发布——全球足球联赛应有尽有

            本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新 开源C#彩票数据资料库系列文章总目录:[目录]C#搭建足球赛事资料库与预测平台与彩票数据分析目录 前2个月,我的系列文 ...

  3. 足球游戏论坛数据分析--简单粗暴的K均值聚类

    在<<足球游戏论坛数据分析--简单粗暴的贝叶斯>>中尝试了贴标签后,一直觉得结果无法接受, 慢慢回想, 其实选择的算法是错误的,原因有 论坛帖子分类并非就是PC/PS/XBOX ...

  4. 足球游戏AI_资料收集

    实况足球中文官网 浅谈足球游戏的人工智能 用遗传算法加强足球游戏的人工智能 足球规则图解 守门员的技巧你知道吗? 教你足球守门员守门技术练习方法和技巧 足球守门员规则 判断点球方向

  5. 【目录】C#搭建足球赛事资料库与预测平台与彩票数据分析目录

    本博客所有文章分类的总目录链接:本博客博文总目录-实时更新 1.彩票数据分析与预测 6.智彩足球技术研究团队成员介绍 5.关于组建“智彩足球技术研究团队”的说明 4.为什么选择玩足球彩票以及玩彩票的心 ...

  6. 【原创】C#搭建足球赛事资料库与预测平台(6) 赔率数据表设计2

            本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新 开源C#彩票数据资料库系列文章总目录:[目录]C#搭建足球赛事资料库与预测平台与彩票数据分析目录 本篇文章开始将逐步介 ...

  7. C#搭建足球赛事资料库与预测平台(1) 基本介绍

            本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新 开源C#彩票数据资料库系列文章总目录:[目录]C#搭建足球赛事资料库与预测平台与彩票数据分析目录 去年4月到现在,一年 ...

  8. FIFA halts 2026 bids amid scandal 国际足联在丑闻期间停止2026年足球世界杯申请

    FIFA halts 2026 bids amid scandal 国际足联在丑闻期间停止2026年足球世界杯申请 But official insists 2018 Cup will stay in ...

  9. 【原创】C#搭建足球赛事资料库与预测平台(2) 数据库与XCode组件

            本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新 开源C#彩票数据资料库系列文章总目录:[目录]C#搭建足球赛事资料库与预测平台与彩票数据分析目录  本篇文章开始将逐步 ...

随机推荐

  1. 通俗理解vuex原理---通过vue例子类比

    本文主要通过简单的理解来解释下vuex的基本流程,而这也是vuex难点之一. 首先我们先了解下vuex的作用 vuex其实是集中的数据管理仓库,相当于数据库mongoDB,MySQL等,任何组件都可以 ...

  2. 解读OpenRTB(实时竞价)生态系统

    最近3年,广告实时竞价(RealTimeBidding)模式逐渐流行起来. 2012年大致了解过,最近一段时间,重新温习下. 半壁江山 生态系统总的来说分为2个部分,卖方和买方. 卖方:媒体,即拥有广 ...

  3. 设计模式六大原则(五):迪米特法则(Law Of Demeter)

    定义: 一个对象应该对其他对象保持最少的了解. 问题由来: 类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大. 解决方案: 尽量降低类与类之间的耦合. PS: 自从我们接 ...

  4. Dell shareplex 与HVR数据复制软件

    今天大体了解了一下Dell shareplex 数据复制软件,网址为:http://software.dell.com/products/shareplex/ 从该网址能够看到. shareplex作 ...

  5. 使用@Order调整配置类加载顺序

    转自:https://blog.csdn.net/qq_15037231/article/details/78158553 4.1 @Order Spring 4.2 利用@Order控制配置类的加载 ...

  6. js日期常用方法

    js获取日期时间格式 export function formatDateTime(timeStamp) { var date = new Date(); date.setTime(timeStamp ...

  7. 通过wmi获取本地硬件信息的一些疑问。

    通过wmi获取本地硬件信息的一些疑问. http://bbs.csdn.net/topics/391017789 http://blog.csdn.net/xcntime/article/detail ...

  8. JS学习笔记 - 自定义右键菜单、文本框只能输入数字

    <script> // 事件总共有2个部分, //1.点击鼠标右键的表现 oncontextmenu 2.点击鼠标左键的表现(即普通点击onclick) // 点击右键,div位置定位到鼠 ...

  9. React-Native_02:语法篇

    1.简单介绍 ECMAScript 6.0(以下简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式公布了.它的目标.是使得JavaScript语言能够用来编写复杂的大型应用程 ...

  10. how to query for a list<String> in jdbctemplate?--转载

    原文地址:http://stackoverflow.com/questions/13354158/how-to-query-for-a-liststring-in-jdbctemplate   I'm ...