給定n個小區間以及區間起點終點,求能用它們覆蓋區間[1,t]的最小組合。
也是看了別人的思路我才做出來的,**比較精簡。
思路:先把資料排序。把time設為當前起點,最開始的起點為1,所以尋找開始起點為1的裡面結束時間最晚的那個資料+1當作下乙個起點time。
之後遍歷,尋找<=time裡面結束時間最晚的那個資料。重複上述步驟。用g++做超時了,用c++的話勉強過關,900多ms。
#include#includeusing namespace std;
int main()
if (max == 0)
if (cnt>n)
time = max + 1;
cnt++;
} printf("%d\n", cnt);
}
POJ 2376 簡單的區間貪心問題
簡單翻譯 給你乙個長度為t的時間區間,區間從1開始,每乙個時間點都需要有奶牛在工作,有n頭奶牛,給你每個奶牛的工作區間,讓你從這些奶牛中選一些奶牛,讓其覆蓋t這個時間區間,有兩個條件 1.每個時間點都需要有奶牛工作 2.盡可能少的使用奶牛 分析 我們可以位元組把題目中給定的條件就想象成乙個乙個的區間...
poj 2376 選擇工作區間問題 貪心演算法
題意 給一些工作區間,如何選取最小的工作數量,覆蓋 1,t 的工作時長 一開始的思路,當然也是錯誤的思路 解題思路 標記起點,當然對提供的工作區間,按開始的時間從小到大排序。對能夠覆蓋起點 即可選的工作區域 選擇結束時間最晚的 即工作時長最長的 更新起點 中的小技巧 主要針對第二個解題思路 可選區域...
poj解題報告 1328
不得不說,這題是讓我飽受折磨,畢竟第一次做貪心演算法,而且wa了好多次,幸好有學長的幫助,最終找到了問題所在,是在快排上是問題,double高位不可向int低位轉換,由於一開始強制轉換導致雖然樣例和其他的測試資料過了,但還是wa,現在改完了就對了,附上ac ps 這題通過率是22 真心不簡單 如下 ...