洛谷鏈結點這裡
好了,這是我找二分例題的時候刷到的,我也不知道為什麼會出來dp區間和
ok,現在一步步來分析題目
第一步,我要處理輸入的資料,假設我有這麼幾段區間,[16,20],[18,20],[19,20]和[1,5],[2,5],[3,5],[4,5],和 [8,11],[9,11],[10,11]那麼你打算怎麼處理它呢?
我的想法是弄乙個容器vector陣列,把[ x , y ]的y作為乙個個容器,然後把x塞進去,那麼最後就會變成這樣了
20裡面有16,18,19這三個元素
5裡面有1,2,3,4這四個元素
11裡面有8,9,10這三個元素
第二步,確定最右的邊界作為第乙個for迴圈的終止條件
做法是設乙個變數mx不斷地對輸入的y取mx=max(mx,y)
第三步,也是最麻煩的一步,其實也就是兩個for迴圈套dp模板
那麼,要怎麼套用呢
我們最開始開了個vector< int>bag[30000001]
乙個個x其實就是bag[y] [0 ~ 元素個數]
比如16,20裡面的x=16就是bag[20][0]
而3,5這裡的x=3就是bag[5][2]
然後就…
for(int i=1;i<=最右邊界;i++)
for(int i=1;i<=mx;i++){
dp[i]=dp[i-1];
for(int j=0;j如果你把我的**copy上去了的話只能拿91分,第三個測試點會wa掉,因為那個測試點會出現x=0,那麼你x-1=-1了,怎麼改呢,其實只要加一句對x的if判斷就好了,相信聰敏如冰冰的你一定想得出來哈哈哈哈哈哈哈
P1868 飢餓的奶牛
有一條奶牛衝出了圍欄,來到了一處聖地 對於奶牛來說 上面用牛語寫著一段文字。現用漢語翻譯為 有n個區間,每個區間x,y表示提供的x y共y x 1堆優質牧草。你可以選擇任意區間但不能有重複的部分。對於奶牛來說,自然是吃的越多越好,然而奶牛智商有限,現在請你幫助他。輸入格式 第一行,n,如題 接下來n...
洛谷P1868 飢餓的奶牛
有一條奶牛衝出了圍欄,來到了一處聖地 對於奶牛來說 上面用牛語寫著一段文字。現用漢語翻譯為 有n個區間,每個區間x,y表示提供的x y共y x 1堆優質牧草。你可以選擇任意區間但不能有重複的部分。對於奶牛來說,自然是吃的越多越好,然而奶牛智商有限,現在請你幫助他。輸入格式 第一行,n,如題 接下來n...
洛谷P1868 飢餓的奶牛 DP
時空限制 1000ms 128mb 題目描述 有一條奶牛衝出了圍欄,來到了一處聖地 對於奶牛來說 上面用牛語寫著一段文字。現用漢語翻譯為 有n個區間,每個區間x,y表示提供的x y共y x 1堆優質牧草。你可以選擇任意區間但不能有重複的部分。對於奶牛來說,自然是吃的越多越好,然而奶牛智商有限,現在請...