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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

hdu1052 Tian Ji -- The Horse Racing

發布時間:2023/12/20 编程问答 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hdu1052 Tian Ji -- The Horse Racing 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

??????這道田忌賽馬問題,是一個涉及貪心算法的題目。雖然還沒學貪心算法,但是參考別人的思路后對這道題的解題思路已經較為清晰了,下面就來說一下本題的解題思路吧。

???????1、 當然要對馬的速度進行一個排序,讓田忌與齊王的馬都從大到小進行排序(當然你也可以從小到大)

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

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

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

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

????????????此時,拿最慢的馬進行比較:

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

?這里提供一組數據,這組數據能通過的話基本就能過了:

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; }


?



總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。