TYVJ 1048 田忌赛马 贪心解法
2017-10-15 13:50
211 查看
描述
中国古代的历史故事“田忌赛马”是为大家所熟知的。话说齐王和田忌又要赛马了,他们各派出N匹马,每场比赛,输的一方将要给赢的一方200两黄金,如果是平局的话,双方都不必拿出钱。现在每匹马的速度值是固定而且已知的,而齐王出马也不管田忌的出马顺序。请问田忌该如何安排自己的马去对抗齐王的马,才能赢取最多的钱?输入格式
第一行为一个正整数n (n <= 1000) ,表示双方马的数量。第二行有N个整数表示田忌的马的速度。
第三行的N个整数为齐王的马的速度。
输出格式
仅有一行,为田忌赛马可能赢得的最多的钱,结果有可能为负。测试样例1
输入
392 83 71
95 87 74
输出
2001 /* 2 首先,双方的马按速度排序。 3 考虑己方最弱的马和对方最弱的马的速度关系。如果对方更弱,那么不妨就用这匹马去对对方的那匹马;如果我方更弱,那么不妨用这匹马和对方当前最强的马比赛。(平局稍后再说) 4 同样地,可以考虑己方最强的马和对方最强的马的关系。 5 不停地贪心处理,直到双方最强的马相等、最弱的马也相等。 6 再考虑己方最弱马 和对方最强马的关系 7 相等就强制让这两局平局发生。 8 否则就耗掉对方最强马 9 继续处理,直到所有的马都用完。 10 */ 11 #include<cstdio> 12 #include<iostream> 13 #include<algorithm> 14 #define MAXN 10010 15 16 using namespace std; 17 18 int a[2][MAXN]; 19 20 int n,ans; 21 22 inline void read(int &x) { 23 int f=1;x=0;char c=getchar(); 24 while(c>'9'||c<'0') {if(c=='-') f=-1;c=getchar();} 25 while(c>='0'&&c<='9') {x=(x<<1)+(x<<3)+c-48;c=getchar();} 26 x=x*f; 27 } 28 29 int main() { 30 read(n); 31 for(int i=1;i>=0;i--) //a[1]代表田忌 a[0]代表齐王 32 for(int j=1;j<=n;j++) 33 read(a[i][j]); 34 sort(a[0]+1,a[0]+1+n); 35 sort(a[1]+1,a[1]+1+n); 36 int tl=1,tr=n,jl=1,jr=n; 37 while(tl<=tr) { 38 if(a[1][tl]>a[0][jl]) {tl++;jl++;ans++;continue;} 39 else if(a[1][tl]<a[0][jl]) {tl++;jr--;ans--;continue;} 40 else if(a[1][tl]==a[0][jl]) { 41 if(a[0][jr]<a[1]) {tr--;jr--;ans++;continue;} 42 else if(a[1] <a[0][jr]) {ans--;tl++;jr--;continue;} 43 else if(a[1] ==a[0][jr]) { 44 if(a[1][tl]==a[0][jr]) {tl++;jr--;continue;} 45 else if(a[1][tl]<a[0][jr]) {tl++;jr--;ans--;continue;} 46 } 47 } 48 } 49 printf("%d\n",ans*200); 50 return 0; 51 }
代码相关文章推荐
- hdoj 1052 Tian Ji -- The Horse Racing【田忌赛马,贪心】
- hdoj 1052 Tian Ji -- The Horse Racing【田忌赛马】 【贪心】
- 2287 poj 田忌赛马,贪心
- hdu1052 田忌赛马 —— 贪心
- [BZOJ 1034][ZJOI2008]泡泡堂BNB(类田忌赛马贪心)
- POJ 2287 田忌赛马 贪心
- nyoj364 田忌赛马 贪心
- hrbust 哈理工oj 1570 田忌赛马【贪心】
- 田忌赛马后传 &nyoj 田忌赛马 364 (贪心)
- poj 2287 田忌赛马 贪心
- HDU1052 田忌赛马 贪心
- 贪心算法之田忌赛马
- hdoj 1052 Tian Ji -- The Horse Racing【田忌赛马】 【贪心】
- HDU1052 田忌赛马 贪心
- 【BZOJ1034】[ZJOI2008]泡泡堂BNB【贪心】【田忌赛马】
- HDU1052 Tian Ji -- The Horse Racing 田忌赛马 贪心
- ny 364 田忌赛马 && hdu 1052 Tian Ji -- The Horse Racing【贪心】
- poj2287-田忌赛马贪心
- ACM--田忌赛马--贪心--HDOJ 1052--Tian Ji -- The Horse Racing
- hdoj 1052 Tian Ji -- The Horse Racing【田忌赛马,贪心】