【t049】&&【u001】足球
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 1 2
Sample Output
1 1
3 2
【题解】 神经病一样的题。 没有严密的思维根本写不出来好吗。 最好的情况要从最好到次好判断 最坏的情况则要从最坏到次坏这样。。 然后总体的思路就是如果能全赢则是最好的。否则就尝试在第一场就把所有球都丢掉。剩余的看一下能不 能用进的球填满(每场只填1个球)。如果填不满就只好平局啦。 然后最坏情况是全都输(如果可以)。或者是第一场把所有的进球都进了。然后剩余n-1场全输。。。 哎,没有这么简单。还要判断的一些小细节很多。总之很恶心。。看注释吧。 【代码】#include <cstdio> __int64 s, t, n; int main()
{
while (scanf("%I64d%I64d%I64d", &s, &t, &n) != -1)
{
__int64 perfect, bad;
if (n == 1) //如果只有一场比赛。直接进行特判就好。
{
if (s > t)
printf("3 3\n");
else
if (s == t)
printf("1 1\n");
else
if (s < t)
printf("0 0\n");
continue;
}
if ((s + t) == 0) //如果一个球都没进,也一个球都没丢。则全是0:0
{
printf("%I64d %I64d\n", n, n);
continue;
}
if (s == 0) //如果一个球都没进
{
//最好就是在第一场把t分全部输掉。其余场都是0:0 ,上面s+t==0已结排除一个球都没丢的情况。
perfect = n-1;
//最坏的话要分情况。
if (t >= n) //如果输的球足够每一场都分配一个则得0分
bad = 0;
else //否则少于的部分只能是0:0了。即平局。
bad = n - t;
}
else
if (t == 0)//如果一个球都没丢
{
//最好的情况也要分类
if (s >= n) //如果进的球数足够每一场都分一个
perfect = 3 * n;//每一场都赢
else //不够分到每一场
perfect = (n - s)+3*s;//有些场只能平局了。
//最坏的情况就是全都在第一场进的。其余场都是平局
bad = 3 + (n - 1);
}
else
if (s <= t) //如果进球数小于丢球数
{
//最好的情况是,第一场把t个球丢掉。然后s足够给剩余n-1场每场分配一个球,即胜n-1场)
if (s >= n - 1)
perfect = 3 * (n - 1);
else //次好则是 s不够分n-1场。则n-1场中有一些平局。
perfect = 3 * s + (n - 1) - s;
//接下来考虑最坏的情况。
if (s == 1 && n >= t) //如果只进了一个球且输球数没有超过n
bad = 1 + n - t;//把这t个球分配到t场中。这t场除了一场1:1平之外其他场都输,然后另外n-t场为0:0平
else//注:这里不先考虑t-s>=n是因为如果t小于n,后者是不可能成立的。然后该情况比让对方赢一场的其余都输
//可能会更差。
//下面就是按照bad递增来枚举的。
if (t - s >= n)//如果总输球数大于等于n了。则可以n场每场都至少输1球。
bad = 0;//即全都可以输
else
if (t - s == n - 1)//如果只有n-1场能输,剩下一场只好平了。
bad = 1;
else
if (t - s == n - 2)//如果只有n-2场能输,剩余2场只好平了。
bad = 2;
else
if (t >= n - 1)//如果在第一场把s个球踢进。赢一场。其余n-1场全部输掉。
bad = 3; //最坏情况为3
else //如果剩余t个输球不够填满n-1场。则剩余的平局
bad = 3 + (n - 1) - t;
}
else //如果进球数大于丢球数
{
if (s - t >= n) //如果每一场都能至少赢一球
perfect = 3 * n;//这里的perfect也是按照perfect递减来枚举的。
else
if (s - t == n - 1) //如果能n-1场都至少赢一球 ,另外一场平局
perfect = (s - t) * 3 + 1;
else
if (s >= n - 1) //如果能第一场输t分,然后其余n-1场每场都至少赢1球。
perfect = 3 * (n - 1);
else //如果不够的话n-1场里会有几场是平的。
perfect = 3 * s + (n - 1) - s;
//然后是最坏情况。
//即第一场把s球全部踢进.然后看一下丢球数够不够填满n-1场。
if (t >= n - 1)
bad = 3;
else //不够的话就是平局了。
bad = 3 + (n - 1) - t;
}
printf("%I64d %I64d\n", perfect, bad);
}
return 0;
}
【t049】&&【u001】足球的更多相关文章
- 白话贝叶斯理论及在足球比赛结果预测中的应用和C#实现
离去年“马尔可夫链进行彩票预测”已经一年了,同时我也计划了一个彩票数据框架的搭建,分析和预测的框架,会在今年逐步发表,拟定了一个目录,大家有什么样的意见和和问题,可以看看,留言我会在后面的文章中逐步改 ...
- .NET足球赛事资料数据库平台SmartLottery开源发布——全球足球联赛应有尽有
本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新 开源C#彩票数据资料库系列文章总目录:[目录]C#搭建足球赛事资料库与预测平台与彩票数据分析目录 前2个月,我的系列文 ...
- 足球游戏论坛数据分析--简单粗暴的K均值聚类
在<<足球游戏论坛数据分析--简单粗暴的贝叶斯>>中尝试了贴标签后,一直觉得结果无法接受, 慢慢回想, 其实选择的算法是错误的,原因有 论坛帖子分类并非就是PC/PS/XBOX ...
- 足球游戏AI_资料收集
实况足球中文官网 浅谈足球游戏的人工智能 用遗传算法加强足球游戏的人工智能 足球规则图解 守门员的技巧你知道吗? 教你足球守门员守门技术练习方法和技巧 足球守门员规则 判断点球方向
- 【目录】C#搭建足球赛事资料库与预测平台与彩票数据分析目录
本博客所有文章分类的总目录链接:本博客博文总目录-实时更新 1.彩票数据分析与预测 6.智彩足球技术研究团队成员介绍 5.关于组建“智彩足球技术研究团队”的说明 4.为什么选择玩足球彩票以及玩彩票的心 ...
- 【原创】C#搭建足球赛事资料库与预测平台(6) 赔率数据表设计2
本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新 开源C#彩票数据资料库系列文章总目录:[目录]C#搭建足球赛事资料库与预测平台与彩票数据分析目录 本篇文章开始将逐步介 ...
- C#搭建足球赛事资料库与预测平台(1) 基本介绍
本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新 开源C#彩票数据资料库系列文章总目录:[目录]C#搭建足球赛事资料库与预测平台与彩票数据分析目录 去年4月到现在,一年 ...
- FIFA halts 2026 bids amid scandal 国际足联在丑闻期间停止2026年足球世界杯申请
FIFA halts 2026 bids amid scandal 国际足联在丑闻期间停止2026年足球世界杯申请 But official insists 2018 Cup will stay in ...
- 【原创】C#搭建足球赛事资料库与预测平台(2) 数据库与XCode组件
本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新 开源C#彩票数据资料库系列文章总目录:[目录]C#搭建足球赛事资料库与预测平台与彩票数据分析目录 本篇文章开始将逐步 ...
随机推荐
- mysql 实行模糊查询 一个输入值匹配多个字段和多个输入值匹配一个字段
mysql 实行模糊查询 一个输入值匹配多个字段 MySQL单表多字段模糊查询可以通过下面这个SQL查询实现 为啥一定要150字以上 真的麻烦 还不让贴代码了 SELECT * FROM `ma ...
- android插件式开发资料整理
1.DL : Apk动态载入框架 2.android中的动态载入机制
- java位运算应用
位移动运算符: <<表示左移, 左移一位表示原来的值乘2. 比如:3 <<2(3为int型) 1)把3转换为二进制数字0000 0000 0000 0000 0000 000 ...
- C语言速度优化之指针赋值与if推断
近期在写的一个项目须要优化处理速度,我写了一下程序来測试指针赋值与指针推断的速度比較.结果让我大吃一惊. #include <stdio.h> #include <stdlib.h& ...
- 洛谷 P1206 [USACO1.2]回文平方数 Palindromic Squares
P1206 [USACO1.2]回文平方数 Palindromic Squares 题目描述 回文数是指从左向右念和从右向左念都一样的数.如12321就是一个典型的回文数. 给定一个进制B(2< ...
- js进阶 14-2 如何用ajax验证登陆状态(这里用load方法)
js进阶 14-2 如何用ajax验证登陆状态(这里用load方法) 一.总结 一句话总结:$('#test').load('test.php?password=1234560'),这样就get方式提 ...
- TabControl控件重绘
原文地址:http://www.codeproject.com/Articles/91387/Painting-Your-Own-Tabs-Second-Edition 在网上看到重绘TabContr ...
- oled的一套stm32实验2(自己的实验)
stm32与OLED屏接口的引脚介绍: CS————GPIOD3: RST————GPIOD4: DC—————GPIOD5: D0——————GPIOD6: D1——————GPIOD7; 上是我参 ...
- JS学习笔记 - fgm练习 - 网页换肤
总结: 1. 点击按钮,div内部变色,边框保持颜色不变. 实现原理:其实本来就把background 和 border 分别设置了同一个颜色,看似是一个整体,其实本来就是分开的. 那么点击的时候,只 ...
- Python中的Sets数据结构
Python的set和其他语言类似,是一个无序不重复元素集,基本功能包括关系测试和消除重复元素.集合对象支持union(联合),intersection(交),difference(差)和sysmme ...