[HDU1052]Tian Ji -- The Horse Racing(田忌赛马)
题目大意:田忌赛马问题,给出田忌和齐威王的马的数量$n$和每匹马的速度$v$,求田忌最多赢齐威王多少钱(赢一局得200,输一局扣200,平局不得不扣)。
思路:贪心。
1.若田忌最慢的马可以战胜齐王最慢的马,那么就让它战胜那匹慢马,胜利场次加1。(田忌最慢马 > 齐王最慢马)
2.若田忌最慢的马不能战胜齐王最慢的马,那么它更加不能战胜其他的马,那就让它输给齐王最快的马,失败场次加1。(田忌最慢马 < 齐王最快马)
3.若田忌最慢的马与齐王最慢的马速度相等。此时,打平是错误的。
因为自己的快马很有可能战胜此时对方的这匹慢马,所以就算自己输一场,快马也能帮忙赢回一场,而胜一场,输一场的收益和打平一场的收益是一样的相当于打平了一场。但区别在于自己输的时候可以用掉对方最快的马,给己方最快的马创造更大的胜利机会(因为它少了一个强劲的对手),也就是说己方最快的马很可能因为自己的牺牲再胜利一场,所以,输掉比打平的收益高。
但是如果己方最快的马原本就比对方最快的马快,则应该直接用己方最快的马和对方最快的马比赛,没必要再用己方最慢的马消耗掉对面最快的马。
根据思路写出代码。
C++ Code:
#include<cstdio>
#include<algorithm>
using namespace std;
int n;
int tj[],qww[],tslow,tfast,qslow,qfast;
int main(){
while(~scanf("%d",&n)&&n){
for(int i=;i<n;i++)scanf("%d",&tj[i]);
for(int i=;i<n;i++)scanf("%d",&qww[i]);
sort(tj,tj+n);
sort(qww,qww+n);
int win=,lose=;
tslow=qslow=;
tfast=qfast=n-;
while(tslow<=tfast){
if(tj[tslow]>qww[qslow]){//情况1
win++;
tslow++;
qslow++;
}else
if(tj[tslow]<qww[qslow]){//情况2
lose++;
tslow++;
qfast--;
}else //情况3
if(tj[tfast]>qww[qfast]){//特殊情况
win++;
tfast--;
qfast--;
}else{
if(tj[tslow]<qww[qfast])lose++;
tslow++;
qfast--;
}
}
printf("%d\n",*(win-lose));
}
return ;
}
[HDU1052]Tian Ji -- The Horse Racing(田忌赛马)的更多相关文章
- 【贪心】[hdu1052]Tian Ji -- The Horse Racing(田忌赛马)[c++]
Tian Ji -- The Horse Racing Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java ...
- hdu1052 Tian Ji -- The Horse Racing 馋
转载请注明出处:http://blog.csdn.net/u012860063 题目链接:pid=1052">http://acm.hdu.edu.cn/showproblem.php ...
- hdu 1052 Tian Ji -- The Horse Racing (田忌赛马)
Tian Ji -- The Horse Racing Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (J ...
- HDU-1052 Tian Ji -- The Horse Racing 贪心 考虑特殊位置(首尾元素)的讨论
题目链接:https://cn.vjudge.net/problem/HDU-1052 题意 田忌赛马问题扩展版 给n匹马,马的能力可以相同 问得分最大多少 思路 贪心做得还是太少,一开始一点思虑都没 ...
- 【OpenJ_Bailian - 2287】Tian Ji -- The Horse Racing (贪心)
Tian Ji -- The Horse Racing 田忌赛马,还是English,要不是看题目,我都被原题整懵了,直接上Chinese吧 Descriptions: 田忌和齐王赛马,他们各有n匹马 ...
- hdoj 1052 Tian Ji -- The Horse Racing【田忌赛马】 【贪心】
思路:先按从小到大排序, 然后从最快的開始比(如果i, j 是最慢的一端, flag1, flag2是最快的一端 ),田的最快的大于king的 则比較,如果等于然后推断,有三种情况: 一:大于则比較, ...
- Hdu 1052 Tian Ji -- The Horse Racing
Tian Ji -- The Horse Racing Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (J ...
- HDUOJ-------1052Tian Ji -- The Horse Racing(田忌赛马)
Tian Ji -- The Horse Racing Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (J ...
- Tian Ji -- The Horse Racing
Tian Ji -- The Horse Racing Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Jav ...
随机推荐
- http-server 简介 复制的
http-server 简介 https://blog.csdn.net/ithanmang/article/details/88375259http-server 是一个简单的零配置的命令行 htt ...
- Project Euler 35 Circular primes
题意:197被称为圆周素数,因为将它逐位旋转所得到的数:197/971和719都是素数.小于100的圆周素数有十三个:2.3.5.7.11.13.17.31.37.71.73.79和97.小于一百万的 ...
- [luogu2047 NOI2007] 社交网络 (floyed最短路)
传送门 输入输出样例 输入样例#1: 4 4 1 2 1 2 3 1 3 4 1 4 1 1 输出样例#1: 1.000 1.000 1.000 1.000 题解 在进行floyed的过程中,顺便更新 ...
- tf.truncated_normal和tf.random_normal使用方法的区别
1.tf.truncated_normal使用方法 tf.truncated_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=No ...
- some untracked working tree files问题解决
我使用的是idea,情境是在使用git同步代码的时候,出现的错误. 我这里报错是在右上角的显示信息,其中有一个show view的可点击连接 我点击之后将上面展示的文件删除之后重新同步代码,成功.
- CF802G Fake News (easy)
CF802G Fake News (easy) 题意翻译 给定一个字符串询问能否听过删除一些字母使其变为“heidi” 如果可以输出“YES”,不然为“NO” 题目描述 As it's the fir ...
- HDU 2196 Computer 树形DP经典题
链接:http://acm.hdu.edu.cn/showproblem.php? pid=2196 题意:每一个电脑都用线连接到了还有一台电脑,连接用的线有一定的长度,最后把全部电脑连成了一棵树,问 ...
- 结束QQ即时通信垄断,开辟即时通信互联互通instantnet时代
结束QQ即时通信垄断,开辟即时通信互联互通instantnet时代 蓬勃发展的即时通信产业 即时通信(IM)是指可以即时发送和接收互联网消息等的业务. 即时通信.就是瞬间把信息发送给对方,假设不是即时 ...
- linux网络启动报错
报错信息: shutting down interface eth0: error:device "eth0" (/org/freedsktop/networkMaager/Dev ...
- spring Batch实现数据库大数据量读写
spring Batch实现数据库大数据量读写 博客分类: spring springBatchquartz定时调度批处理 1. data-source-context.xml <?xml v ...