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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

NYoj 14会场安排问题

發布時間:2024/1/17 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NYoj 14会场安排问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

會場安排問題

?時間限制:3000 ms? |? 內存限制:65535 KB

難度:4

描述 學校的小禮堂每天都會有許多活動,有時間這些活動的計劃時間會發生沖突,需要選擇出一些活

動進行舉辦。小劉的工作就是安排學校小禮堂的活動,每個時間最多安排一個活動。現在小劉有一些

活動計劃的時間表,他想盡可能的安排更多的活動,請問他該如何安排。

輸入第一行是一個整型數m(m<100)表示共有m組測試數據。 ?每組測試數據的第一行是一個整數n(1<n<10000)表示該測試數據共有n個活動。 ?隨后的n行,每行有兩個正整數Bi,Ei(0<=Bi,Ei<10000),分別表示第i個活動的起始與結束時間

(Bi<=Ei) ?輸出對于每一組輸入,輸出最多能夠安排的活動數量。 ?每組的輸出占一行樣例輸入2 2 1 10 10 11 3 1 10 10 11 11 20 ?樣例輸出1 2提示注意:如果上一個活動在t時間結束,下一個活動最早應該在t+1時間開始

?

?

最好改進下排序算法,超時 #include<stdio.h> void sort(int *s,int *f,int n) { int i,j,temp; for(i=1;i<n;i++)//冒泡排序 { for(j=0;j<n-i;j++) { if(f[j]>f[j+1])//結束時間由小到大排序 { temp=f[j]; f[j]=f[j+1]; f[j+1]=temp; //或者a^=b^=a^=b

temp=s[j]; s[j]=s[j+1]; s[j+1]=temp; } } } } int greedyselector(int *s,int *f,int n) { int i,j=0; int count=1; for( i=1;i<n;i++) { if(s[i]>=f[j]+1) { j=i; count++;

} } return count; } int main() { int m;? int n,i; int count;? int s[10000],f[10000]; scanf("%d",&m); while(m--) {

scanf("%d",&n); for(i=0;i<n;i++) scanf("%d%d",&s[i],&f[i]);? sort(s,f,n); count=greedyselector(s,f,n); printf("%d\n",count); } return 0; }

轉載于:https://www.cnblogs.com/hxsyl/archive/2012/04/12/2444986.html

總結

以上是生活随笔為你收集整理的NYoj 14会场安排问题的全部內容,希望文章能夠幫你解決所遇到的問題。

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