描述
有一條長度為m公尺的馬路,路**是種植植物的隔離帶(長度也是m公尺)。有乙個勤勞的園丁,花了d天時間為隔離帶的土地施肥,每天施肥一次。由於園丁用於攜帶肥料的車輛承載能力有限,只能為某一小片連續的土地施肥。而且園丁從小就不認真學政治課,導致記性有點差,每天施肥都是很隨意地選擇一片連續的土地。給隔離帶的土地以1公尺的長度劃分為一格基本單位,為這塊m公尺長的土地分別編號為1、2、3、…、m。第i天施肥時,選擇編號從ai到bi的土地進行施肥(包含ai和bi)。
假設還未開始施肥的時候,每塊土地的肥沃度都是0。當某塊土地在某天被施肥後,該塊土地的肥沃度會加1。問進行了d天的施肥後,肥沃度至少為c的土地有多少公尺?
輸入
多組案例。乙個正整數n,表示案例的數量。
每組案例先是三個正整數m、c、d,然後是d行資料,每行資料有兩個整數ai和bi。
(n<=20,m<=1000000,c<=d<=1000000,1<=ai<=bi<=m)
輸出
針對每組案例,輸出乙個整數,表示肥沃度大於等於c的土地有多少公尺。
每組案例輸出完都要換行。
樣例輸入
110 2 3
2 53 7
1 9樣例輸出
6hint
第2、3、4、5、6、7公尺處的肥沃度都大於等於c
#include
using
namespace std;
intmain()
;//差分陣列,diff[i]表示第i公尺的肥沃度減少
cin >> m >> c >> d;
for(
int i =
0; i < d; i++
)int cnt =
0, x =0;
//x為肥沃度
for(
int i =
1; i <= m; i++)}
cout << cnt << endl;
}return0;
}//f[0] f[1] f[2] f[3] f[4] f[5]
// 0 1 2 3 2 1
//第一天2~4塊
//第二天3~5塊
//第三天1~3塊
//第四天2~900000塊 g[2]++ g[900001]--
//g[0] g[1] g[2] g[3] g[4] g[5] g[6]
// 0 1 1 1 -1 -1 -1
//g[i]=f[i]-f[i-1]
//f[0] f[1] f[2] f[3] f[4] f[5]
// 0 1 2 3 4 5
//f[i]=g[0]+g[1]+...g[i]=f[i-1]+g[i]
勤勞的老人
那位老人正在賣菜,他正擺放著車裡蘿蔔 白菜和菠菜,他的腰深深地彎著,幾乎九十度,你還以為他彎著腰在擺菜。其實他一直就是這樣,只不過腰比以前更彎了,他更老了。女兒小的時候,我常常帶她去我們附近的田地裡去玩,那條通往田間的路很寬很靜,偶爾有一兩個人經過,他們都是遙遠的乙個村里賣菜的人,每天早晨,天還未亮...
HYSBZ 1935 Tree 園丁的煩惱
很久很久以前,在遙遠的大陸上有乙個美麗的國家。統治著這個美麗國家的國王是乙個園藝愛好者,在他的 裡種植著各種奇花異草。有一天國王漫步在花園裡,若有所思,他問乙個園丁道 最近我在思索乙個問題,如果我們把花壇擺成六個六角形,那麼 那麼本質上它是乙個深度優先搜尋,陛下 園丁深深地向國王鞠了一躬。嗯 我聽說...
Codevs 4672 辛苦的老園丁
那個一看這不是 最大獨立集 的最大權值和,類似 反圖 最大團 np問題 搜尋解決 改一下模板即可 參考最大獨立集 maximum clique最大團問題 4672.cpp sun oct 9 12 58 23 2016 this file is made by yjinpeng,created by...