Toj 1188 Tian Ji -The Horse Racing

来源:互联网 发布:手机淘宝宝贝详情编辑 编辑:程序博客网 时间:2024/06/01 09:46

中国有名的田忌赛马问题

贪心法即可解答,贪心时充分利用每一匹马的速度,每匹马尽量战胜对方速度最大的马,完全无法取胜的马区消耗对方的速度最快的马

#include<iostream>using namespace std;int n;int a[1000],b[1000];int main(){while(cin>>n&&n){for(int i=0;i<n;i++){cin>>a[i]; }for(int i=0;i<n;i++){cin>>b[i]; }int t,ans=0;for(int i=1;i<n;i++){  //对两组马的速度进行降序排序 for(int j=0;j<n-i;j++){if(a[j]<a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t; }if(b[j]<b[j+1]){t=b[j];b[j]=b[j+1];b[j+1]=t;}}} //表示田忌(1)和齐王(2)最差的马(r)与最好的马(l)下标int l1=0,l2=0,r1=n-1,r2=n-1;while(l1<=r1){if(a[l1]>b[l2]){  ans+=200;  //当前田忌最好的马比齐王最好的马更好   l1++;      //赢   l2++;    }    else if(a[l1]<b[l2]){  //当前田忌最差的马不如齐王最差的马     ans-=200;           //用最差的马队齐王最好的马 输     r1--;    l2++;} else if(a[l1]==b[l2]&&a[r1]>b[r2]){ //当前最好的马相同,但最差的马比齐王最差的马好 ans+=200;                      //两者相比赢 r1--;  r2--;}else if(a[l1]==b[l2]&&a[r1]<=b[r2]){  //当前田忌最坏的马不比齐王最差的马好 if(a[r1]<b[l2]){ans-=200;}r1--;l2++;} } cout<<ans<<endl;     }    return 0;} 


0 0
原创粉丝点击