日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

hdu1052 Tian Ji -- The Horse Racing

發(fā)布時(shí)間:2023/12/20 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hdu1052 Tian Ji -- The Horse Racing 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?????? 剛開始做這道題的時(shí)候,考慮不夠周全,一直沒(méi)做出來(lái),然后在看了discuss與別人的博客有才意識(shí)到自己考慮不周全。

??????這道田忌賽馬問(wèn)題,是一個(gè)涉及貪心算法的題目。雖然還沒(méi)學(xué)貪心算法,但是參考別人的思路后對(duì)這道題的解題思路已經(jīng)較為清晰了,下面就來(lái)說(shuō)一下本題的解題思路吧。

???????1、 當(dāng)然要對(duì)馬的速度進(jìn)行一個(gè)排序,讓田忌與齊王的馬都從大到小進(jìn)行排序(當(dāng)然你也可以從小到大)

?????? 2、 然后將齊王的馬與田忌的進(jìn)行比較,有以下幾種情況:

????????(1)田忌最快的馬,比齊王最快的馬還快,當(dāng)然這種情況直接就用田忌最快的馬來(lái)贏齊王的最快的馬

????????(2)田忌最快的馬,比齊王最快的馬慢,這種情況用田忌最慢的馬去與齊王最快的馬比賽,以達(dá)到最優(yōu)解

????????(3)田忌最快的馬齊王最快的馬一樣快

????????????此時(shí),拿最慢的馬進(jìn)行比較:

????????????如果田忌最慢的馬齊王最慢的馬速度快,那就直接贏了它。 否則就用田忌最慢的馬齊王最快的馬進(jìn)行比較

?這里提供一組數(shù)據(jù),這組數(shù)據(jù)能通過(guò)的話基本就能過(guò)了:

8

11?9?8?8?8?4?3?2
11?9?8?8?8?4?3?2

(答案800)

?代碼如下:?

#include <stdio.h> #include <stdlib.h> int tian[1001],king[1001],num[1000]; int cmp(const void*a,const void*b){return *(int*)b-*(int*)a; }int main() {int n,i,count;int front,tail,head,rear;while(scanf("%d",&n),n){front=head=0,tail=rear=n-1;count=0;for(i=0;i<n;i++)scanf("%d",&tian[i]);for(i=0;i<n;i++)scanf("%d",&king[i]);qsort(tian,n,sizeof(tian[0]),cmp);qsort(king,n,sizeof(king[0]),cmp);while(front<=rear){if(tian[front]>king[head]){num[front]=head;front++;head++;}else if(tian[front]<king[head]){num[rear]=head;rear--;head++;}else{if(tian[rear]>king[tail]){num[rear]=tail;rear--;tail--;}else{num[rear]=head;head++;rear--;}}}for(i=0;i<n;i++){if(tian[i]>king[num[i]])count++;else if(tian[i]<king[num[i]])count--;}printf("%d\n",200*count);}return 0; }


?



總結(jié)

以上是生活随笔為你收集整理的hdu1052 Tian Ji -- The Horse Racing的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。