洛谷 P1276 校門外的樹(增強版)

2021-09-25 16:42:31 字數 730 閱讀 6696

貌似很久以前(也就幾個星期幾個月前吧),看到過這題,但並沒有做還是懶,今天做一下也算是遲到的練習吧

祝我明天機房測試成功

題目裡還是藏著很多玄機

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,...