最近在做貪心,先從nyoj上簡單經典的題目開始,因此做到了這兩道題目:
題目描述:
時間限制:
2000 ms | 記憶體限制:
65535 kb
難度:2描述
上數學課時,老師給了
lyh一些閉區間,讓他取盡量少的點,使得每個閉區間內至少有乙個點。但是這幾天
lyh太忙了,你們幫幫他嗎? 輸入
多組測試資料。
每組資料先輸入乙個n,表示有n個閉區間(n≤100)。
接下來n行,每行輸入兩個數a,b(0≤a≤b≤100),表示區間的兩個端點。
輸出輸出乙個整數,表示最少需要找幾個點。
主要找找感覺,貪心最重要的是確定貪心準則,一上來我按照了區間左端點來排序,結果想了很長時間沒想出來,後來嘗試了右端點公升序排列就完成了:
#include#includeusing namespace std;
struct node;
int cmp(const node&a,const node&b)
cout《接下來我又點開了非洲小孩,題目描述:
時間限制:
1000 ms | 記憶體限制:
65535 kb
難度:2描述
家住非洲的小孩,都很黑。為什麼呢?
第一,他們地處熱帶,太陽輻射嚴重。
第二,他們不經常洗澡。(常年缺水,怎麼洗澡。)
現在,在乙個非洲部落裡,他們只有乙個地方洗澡,並且,洗澡時間很短,瞬間有木有!!(這也是沒有的辦法,缺水啊!!)
每個小孩有乙個時間段能夠洗澡。並且,他們是可以一起洗的(不管你是男孩是女孩)。
那麼,什麼時間洗澡,誰應該來洗,由誰決定的呢?那必然是他們偉大的「澡」神啊。「澡」神有乙個時間表,記錄著該部落的小孩,什麼時候段可以洗澡。現在,「澡」神要問你,一天內,他需要最少開啟和關閉多少次洗澡的水龍頭呢?因為,開啟和關閉一次水龍頭是非常的費力氣的,即便,這也是瞬間完成的。
輸入多組資料
第一行乙個0
輸出題目描述,「澡」神最少需要開啟和關閉多少次水龍頭呢?
分析題目不難發現就是找點問題的變形,要多乙個將時間轉換成為數的操作,最坑的是其中的區間可能左端點比右端點大。
#include#include#includeusing namespace std;
struct node;
int cmp(const node&a,const node&b)else
}sort(p,p+n,cmp);
int cnt=1;
for(int i=1;ip[i-1].y)
cnt++;
else
p[i].y=min(p[i].y,p[i-1].y);
}cout<}
return 0;
}
NYOJ 非洲小孩
家住非洲的小孩,都很黑。為什麼呢?第一,他們地處熱帶,太陽輻射嚴重。第二,他們不經常洗澡。常年缺水,怎麼洗澡。現在,在乙個非洲部落裡,他們只有乙個地方洗澡,並且,洗澡時間很短,瞬間有木有!這也是沒有的辦法,缺水啊!每個小孩有乙個時間段能夠洗澡。並且,他們是可以一起洗的 不管你是男孩是女孩 那麼,什麼...
NYOJ 非洲小孩 貪心
家住非洲的小孩,都很黑。為什麼呢?第一,他們地處熱帶,太陽輻射嚴重。第二,他們不經常洗澡。常年缺水,怎麼洗澡。現在,在乙個非洲部落裡,他們只有乙個地方洗澡,並且,洗澡時間很短,瞬間有木有!這也是沒有的辦法,缺水啊!每個小孩有乙個時間段能夠洗澡。並且,他們是可以一起洗的 不管你是男孩是女孩 那麼,什麼...
NYOJ1036 非洲小孩
時間限制 1000 ms 記憶體限制 65535 kb 難度 2 描述 家住非洲的小孩,都很黑。為什麼呢?第一,他們地處熱帶,太陽輻射嚴重。第二,他們不經常洗澡。常年缺水,怎麼洗澡。現在,在乙個非洲部落裡,他們只有乙個地方洗澡,並且,洗澡時間很短,瞬間有木有!這也是沒有的辦法,缺水啊!每個小孩有乙個...