poj hdu Tian Ji -- The Horse Racing 贪心
生活随笔
收集整理的這篇文章主要介紹了
poj hdu Tian Ji -- The Horse Racing 贪心
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
http://acm.hdu.edu.cn/showproblem.php?pid=1052 田忌賽馬 先把田忌和國王的馬排序。 每次取田忌的最快的馬與國王最快的馬比較,有三種情況。 一,田忌最快的馬比國王最快的快,那么直接拿田忌最快的馬去贏國王最快的馬。 二,田忌最快的馬比國王最快的慢,那么拿田忌最慢的馬去輸國王最快的馬。 三,田忌最快的馬與國王最快的馬速度一樣。這時就比較麻煩一點了。 先拿田忌最慢的馬與國王最慢的馬比較。 若比國王快,直接去贏掉國王最慢的馬。 否則田忌最慢的馬再去與國王最快的馬比較,此時這兩只馬必定是要比賽的,只是比較一下速度而以。 給一些測試數據: 輸入: 2 4 6 3 6 2 4 6 5 6 2 0 3 0 4 2 0 3 0 2 3 6 7 8 6 6 7 3 1 3 3 2 2 3 3 1 3 5 2 2 5 3 7 8 8 6 8 9 3 4 5 5 5 5 5 4 5 6 7 8 2 4 6 7 輸出: 200 0 0 200 400 200 200 0 -200 800 #include<stdio.h> #include<stdlib.h> #include<algorithm> #include<iostream> using namespace std; int main() { int a[1005],b[1005],n,i,a_H,a_L,b_H,b_L,sum; while(scanf("%d",&n),n!=0) { for(i=0;i<n;i++) scanf("%d",&a[i]); for(i=0;i<n;i++) scanf("%d",&b[i]); sort(a,a+n); sort(b,b+n); sum=0; a_H=0;a_L=n-1; b_H=0;b_L=n-1; while(b_H<=b_L) { if(a[a_L]>b[b_L]) { sum+=200; a_L--;b_L--; } else if(a[a_L]<b[b_L]) { sum-=200; a_H++;b_L--; } else { while(a_H<=a_L) { if(a[a_H]>b[b_H]) { a_H++; b_H++; sum+=200; } else { if(a[a_H]<b[b_L]) sum-=200; b_L--; a_H++; break; } } } } printf("%d\n",sum); ? } return(0); ? }
轉載于:https://www.cnblogs.com/zxj015/archive/2011/04/21/2740230.html
總結
以上是生活随笔為你收集整理的poj hdu Tian Ji -- The Horse Racing 贪心的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [涨知识]想要网站集权,就这么简单几步!
- 下一篇: iPhone5s指纹解锁不灵怎么解决?