uva 1344 Tian Ji -- The Horse Racing
来源:互联网 发布:java连接ssh上传文件 编辑:程序博客网 时间:2024/05/18 00:59
链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=4090
思路:
分别把田忌和国王的马按速度从小到达排序,然后开始从第一个比较,也就是田忌中最小的马和国王最小的马比较,速度分别设为s1, s2,如果s1<s2,那么就采取这个策略,因为这样就以最小的代价赢得了一场比较;如果s1>s2,那么反正这匹马都是输,就让这匹马和国王速度最大的马比!这样就以最小的代价却最大地消耗了敌人。
如果s1=s2,要分情况
那么就反过来让两者最好的马比较,设分别为r1, r2, 如果r1<r2, 说明不管怎样r2都会赢一场,所以就让r2和s1比,这样田忌就以最小的代价输了这场必输的比赛!
如果r1 > r2,就让这两个比,因为田忌的r1赢了对方最强的,值了。
如果r1=r2,那么这时s1=s2, r1=r2, 这两场比赛是都是平局。这样就让s1和r2比,这样r2势必也会赢一场回来。但是可能还有其他代价更小的马可以赢s2,所以这样就有机会让r2去赢更强的对手。
代码:
/* uva 1344 Tian Ji -- The Horse Racing */#include<cstdio>#include<algorithm>#include<iostream>#include<cmath>#include<queue>#include<cstring>using namespace std;const int MAXN = 1020;int s1[MAXN], s2[MAXN];int main(){ int n; while(~scanf("%d", &n) && n){ for(int i=0; i<n; ++i) scanf("%d",&s1[i]); for(int i=0; i<n; ++i) scanf("%d",&s2[i]); sort(s1, s1+n); sort(s2, s2+n); int l1=0, r1=n-1, l2=0, r2=n-1, win=0, lose=0; int cas=1; while(l1<=r1 && l2<=r2){ if(s1[l1] < s2[l2]){ ++l1, --r2; ++lose; }else if(s1[l1] > s2[l2]){ ++l1, ++l2; ++win; }else{ if(s1[r1] > s2[r2]){ --r1, --r2; ++win; }else if(s1[r1] < s2[r2]){ ++l1, --r2; ++lose; }else{ if(s1[l1] < s2[r2]) ++lose; ++l1, --r2; } } } printf("%d\n", (win-lose)*200); } return 0;}
- uva 1344 Tian Ji -- The Horse Racing
- uva--1344--Tian Ji -- The Horse Racing
- UVA 1344 Tian Ji -- The Horse Racing
- uva 1344 Tian Ji The Horse Racing
- UVa 1344 - Tian Ji -- The Horse Racing
- UVa 1344 - Tian Ji -- The Horse Racing
- UVa 3266 Tian Ji -- The Horse Racing
- Uva Tian Ji -- The Horse Racing
- uva 1344 - Tian Ji -- The Horse Racing(贪心)
- UVA 1344 - Tian Ji -- The Horse Racing(贪心)
- 动态规划 UVA 1344 - Tian Ji -- The Horse Racing
- UVa 1344 - Tian Ji -- The Horse Racing(贪心)
- UVA 1344 Tian Ji -- The Horse Racing(模拟)
- Tian Ji -- The Horse Racing
- Tian Ji -- The Horse Racing
- Tian Ji -- The Horse Racing
- Tian Ji -- The Horse Racing
- Tian Ji -- The Horse Racing
- 用crosstool-NG-1.9.3构建ARM工具链
- 无缝世界网游服务器架构的设计思路
- uva10608
- Shell脚本编程——监控系统内存之free
- java math类有哪些常用方法
- uva 1344 Tian Ji -- The Horse Racing
- linux内核之block层函数调用图
- poj 2337 欧拉回路
- Hex文件转换Bin文件——VC代码
- 1002
- 数据结构 学习笔记之:关于顺序栈中给结构体类型指针分配内存时,使用malloc和不使用malloc的疑惑之解惑!
- 1005
- 飞凌OK6410之触摸屏的学习
- 多寄存器寻址指令ldmia/ldmib和ARM存储器访问指令——多寄存器存取