貌似很久以前(也就幾個星期幾個月前吧),看到過這題,但並沒有做還是懶,今天做一下也算是遲到的練習吧
祝我明天機房測試成功
題目裡還是藏著很多玄機的
1.樹和樹苗有什麼區別?
答:沒有區別 樹是原來有的,而樹苗是閒的沒事幹的植樹者植的(因為生長需要時間嘛)
2.注意是留下的樹苗
開始沒看見結果調了好久的錯
3.怎麼搞「種上又被砍掉的樹苗」?
答:陣列開二維的,用第二維作標記
#include
using
namespace std;
int n,l;
int a[
10007][
2];//第二維的0作為有沒有樹/樹苗
//第二維的1作為是樹苗的標記
int suml;
//留下多少樹苗
int sumzk;
//種了被砍了多少樹苗
intmain()
}}if(z==1)
//種樹苗}}
}for
(int i=
0;i<=l;i++)if
(a[i][1
])suml++
;//注意判斷是樹苗
cout/輸出
return0;
}
P1276 校門外的樹(增強版)
原題鏈結 考察 線段樹 or 模擬 模擬是很簡單啦,主要考慮線段樹怎麼寫,本題的線段樹比較特殊.思路 基本是參考了大佬的題解.本題的懶標記過於特殊把我寫懵了.操作 0 砍掉 l,r 區間的樹與樹苗 操作 1 種植 l,r 區間的樹苗.抽象到線段樹操作就是 0 l,r 區間 樹陣列 1,樹苗陣列 1....
題解 P1276 校門外的樹(增強版)
本蒟蒻重學線段樹,發現了這道題可以用線段樹做。雖然資料範圍很小可以直接暴力,但由於在練習線段樹所以打算用線段樹寫這道題。本題解針對已經有線段樹基礎的巨佬,不懂線段樹原理的話可以學習線段樹後再閱讀本題解。剛看題的時候以為大概是個線段樹模板,結果發現事情並不簡單。題目要求的不是剩下多少棵樹和砍掉了多少棵...
luogu1276 校門外的樹(增強版)
時空限制 1000ms 128mb 校門外馬路上本來從編號0到l,每一編號的位置都有1棵樹。有砍樹者每次從編號a到b處連續砍掉每1棵樹,就連樹苗也不放過 記 0 a b 含a和b 幸運的是還有植樹者每次從編號c到d 中凡是空穴 樹被砍且還沒種上樹苗或樹苗又被砍掉 的地方都補種上樹苗 記 1 c d,...