由於csdn新增了字數限制,即日起本人開始轉戰
題目鏈結
這題我原本的想法是:按先x後y的公升序排序,隨後對於任意乙個i,查詢和i+1相交的部分,並在這部分從右往左種樹。最後進行檢查,把不滿足條件的地點種上樹即可。但這種方法好像難以實現,因為情況比較多,比如完全包含、部分相交、完全不相交等。
其實可以這樣思考:既然要種得盡可能少,那麼完全可以在每乙個區間都從右向左。但應當按照先y後x公升序排序。否則會導致 乙個區間完全包含在另乙個區間的情況出現錯誤。
sort(a+1,a+h+1,[&](tree a,tree b)
//在尾部種樹
for(int j=a[i].r; j>=a[i].l&&cnt[i]//最後檢查
for(int i=1; i<=a[h].r; i++)
洛谷狀壓DP做題記錄
題面確實是狀壓的入門題 用dp i j 表示以i結尾,狀態為j時的方案數,如下 includeusing namespace std const int maxn 1e6 7 const int n 20 int n,k ints maxn long long dp n maxn long long...
做題記錄2022 4 29洛谷P1631序列合併
題目鏈結 可以很容易地想出暴力思路,但複雜度高達o n2 所以必須優化 思路1 不難發現在a陣列到i,b陣列到j處,在它們前面的有i j個,這i j個數不可能比它大,所以只要在暴力列舉過程中判斷i j n即可。最後只要對和排序,求出前n個。注意存放和的陣列不能只有n個。vectorsum for i...
做題記錄 P6749 Yoshino
乙個長度為 n 的序列,第 i 項為 a i 對數列進行 m 次操作。l r x 把數列下標在 l,r 區間內的數賦值為了乙個從 x 開始公差為 1 的等差數列。查詢整個數列中的逆序對個數。n,m le 3 times 10 4 考慮逆序對本質。每次賦值等差序列是不會出現逆序對的。設當前修改的是 l...