HDU1052 Tian Ji -- The Horse Racing【贪心】
2014-03-15 14:03
471 查看
原题链接
2014年8月5日10:58:24 更新:
思路:先小到大排序,从最小的开始比较,若tian{小} > king{小},则赢掉这局,若tian{小} < king{小},则用tian[小]输掉king[大],若tian{小} == king{小},则比较最大的,若tian{大}
更新后:
#include <stdio.h>
#include <algorithm>
#define maxn 1002
using std::sort;
int tian[maxn], king[maxn];
int main()
{
int n, i, tl, tr, kl, kr, ans;
while(scanf("%d", &n), n){
for(i = 0; i < n; ++i)
scanf("%d", tian + i);
for(i = 0; i < n; ++i)
scanf("%d", king + i);
sort(tian, tian + n);
sort(king, king + n);
tl = kl = 0; tr = kr = n - 1;
ans = 0;
while(tl <= tr){
if(tian[tl] > king[kl]){
++ans; ++tl; ++kl;
}else if(tian[tl] < king[kl]){
--ans; ++tl; --kr;
}else{
if(tian> king[kr]){
++ans; --tr; --kr;
}else if(tian < king[kr]){
--ans; ++tl; --kr;
}else{
if(tian[tl] < king[kr])
--ans;
++tl; --kr;
}
}
}
printf("%d\n", ans * 200);
}
}
2014年8月5日10:58:24 更新:
贪心标准:若能赢则以最小的代价赢,若得输就让对方付出最大的代价。
思路:先小到大排序,从最小的开始比较,若tian{小} > king{小},则赢掉这局,若tian{小} < king{小},则用tian[小]输掉king[大],若tian{小} == king{小},则比较最大的,若tian{大}
> king{大}, 则用大的赢大的,若tian{大} < king{大}则用tian小输掉king大,若tian{大} == king{大}, 再比较tian小和king大,若小则输掉这局,否则平掉。
更新后:#include <stdio.h>
#include <algorithm>
#define maxn 1002
using std::sort;
int tian[maxn], king[maxn];
int main()
{
int n, i, tl, tr, kl, kr, ans;
while(scanf("%d", &n), n){
for(i = 0; i < n; ++i)
scanf("%d", tian + i);
for(i = 0; i < n; ++i)
scanf("%d", king + i);
sort(tian, tian + n);
sort(king, king + n);
tl = kl = 0; tr = kr = n - 1;
ans = 0;
while(tl <= tr){
if(tian[tl] > king[kl]){
++ans; ++tl; ++kl;
}else if(tian[tl] < king[kl]){
--ans; ++tl; --kr;
}else{
if(tian
++ans; --tr; --kr;
}else if(tian
--ans; ++tl; --kr;
}else{
if(tian[tl] < king[kr])
--ans;
++tl; --kr;
}
}
}
printf("%d\n", ans * 200);
}
}
更新前:
#include <stdio.h> #include <stdlib.h> int a[1001], b[1001]; int cmp(const void *a, const void *b){ return *(int *)a - *(int *)b; } int main(){ int n, count, i; int ax, ay, bx, by; while(scanf("%d", &n), n){ count = 0; for(i = 0; i != n; ++i) scanf("%d", &a[i]); for(i = 0; i != n; ++i) scanf("%d", &b[i]); qsort(a, n, sizeof(int), cmp); qsort(b, n, sizeof(int), cmp); ax = bx = count = 0; ay = by = n - 1; while(ax <= ay){ if(a[ay] > b[by]){ ++count; --ay; --by; }else if(a[ay] < b[by]){ --count; ++ax; --by; }else{ if(a[ax] < b[bx]){ --count; ++ax; --by; }else if(a[ax] == b[bx]){ if(a[ax] < b[by]) --count; ++ax; --by; }else{ ++ax; ++bx; ++count; } } } printf("%d\n", count * 200); } return 0; }
相关文章推荐
- hdu1052 Tian Ji -- The Horse Racing (贪心,田忌赛马)
- HDU1052 Tian Ji -- The Horse Racing(贪心)
- HDU1052 Tian Ji -- The Horse Racing 田忌赛马 贪心
- [HDU1052]Tian Ji -- The Horse Racing[贪心]
- HDU1052-Tian Ji -- The Horse Racing-贪心
- HDU1052 Tian Ji -- The Horse Racing(贪心)
- HDU1052 Tian Ji -- The Horse Racing(贪心)
- hdu1052 Tian Ji -- The Horse Racing(贪心)
- HDU1052 Tian Ji -- The Horse Racing(贪心)
- HDU1052 Tian Ji -- The Horse Racing(贪心)
- hdu1052 Tian Ji -- The Horse Racing 贪心
- POJ2287 HDU1052 Tian Ji -- The Horse Racing【贪心】
- hdu1052-Tian Ji -- The Horse Racing
- 杭电 1052 Tian Ji -- The Horse Racing(贪心)
- hdu 1052 Tian Ji -- The Horse Racing(贪心)
- hdu 1052 Tian Ji -- The Horse Racing(贪心)
- uva 1344 - Tian Ji -- The Horse Racing(贪心)
- Tian Ji -- The Horse Racing(hdu1052)
- HDU-1052 Tian Ji -- The Horse Racing 贪心 考虑特殊位置(首尾元素)的讨论
- HDU 1052 Tian Ji -- The Horse Racing(贪心)(2004 Asia Regional Shanghai)