[bzoj5072] [十月月賽] 小A的樹 樹上揹包
題意
給定一棵
詢問數
分析
一棵樹上的聯通塊是一棵樹,因此考慮從兒子向父親合併資訊。那我們可以維護每個點選含自己的字數內
這樣顯然不行。於是我們發掘一下特性,發現不需要計算每個黑點數量的答案,因為一個子樹內選黑點數量的可行性是連續的一段區間。就是說如果取
於是維護每個子樹選
[ + view code ]
相關推薦
[bzoj5072] [十月月賽] 小A的樹 樹上揹包
題意 給定一棵nn個點的樹,樹上某些點是黑點。每次詢問是否能選出一個xx個點的聯通塊,使其中有yy個黑點。 詢問數≤105,n≤5000≤105,n≤5000。資料組數≤5≤5。 分析 一棵樹上
BZOJ5072[Lydsy十月月賽] 小A的樹 解題報告【樹上揹包/樹形DP】
Problem Statement 小A 成為了一個園藝家!他有一棵n 個節點的樹(如果你不知道樹是什麼,請看Hint 部分)。他不小心打翻了墨水瓶,使得樹的一些節點被染黑了。小A 發現這棵染黑了的樹
【BZOJ5072】[Lydsy十月月賽]小A的樹 樹形DP
etc bits sizeof family mic clas printf namespace size 【BZOJ5072】[Lydsy十月月賽]小A的樹 題解:考慮我們從一個聯通塊中替換掉一個點,導致黑點數量的變化最多為1。所以我們考慮維護對於所有的x,y的最大值和
【bzoj5072】[Lydsy十月月賽]小A的樹 樹形背包dp
spa 修改 zoj 好想 -s 並不會 pan 範圍 暴力 題解: 比較好想 首先註意到如果最暴力的做法復雜度無法接受 而5000的範圍基本是n^2做法了 只使用已經遍歷過的點數目和當前子樹中的點數目轉移我們知道復雜度是n^2的 於是大膽猜測一波同一個節點為根值
【BZOJ5073】[Lydsy十月月賽]小A的咒語 DP
tro 完全 clas 後綴 string name str int true 【BZOJ5073】[Lydsy十月月賽]小A的咒語 題解:沙茶DP,完全不用後綴數組。 用f[i][j]表示用了A的前i個字符,用了j段,最遠能匹配到哪。因為顯然我們能匹配到的地方越遠越好
【BZOJ5071】[Lydsy十月月賽]小A的數字 發現性質
stream bzoj type 交換 數字 void family 直接 題解 【BZOJ5071】[Lydsy十月月賽]小A的數字 題解:一般遇到這種奇奇怪怪的操作,常用的套路是將原序列差分一下,或者求個前綴和什麽的。本題就是直接對原序列求前綴和,然後發現一次操作相當
【BZOJ5074】[Lydsy十月月賽]小B的數字 數學
tchar pre iostream long namespace 數字 main 所有 -- 【BZOJ5074】[Lydsy十月月賽]小B的數字 題解:題目是問你ai*bi>=sum,bi>=0這個不等式組有沒有解。因為a<=10,容易想到取ai的l
bzoj 5072 [Lydsy1710月賽]小A的樹——樹形dp
大小 color targe using pre namespace put 原來 base 題目:https://www.lydsy.com/JudgeOnline/problem.php?id=5072 發現對於每個子樹,黑點個數確定時,連通塊的大小取值範圍一定是一段區
[BZOJ 5072][Lydsy1710月賽]小A的樹
傳送門 樹形dp,注意賦初值 1 #include <bits/stdc++.h> 2 using namespace std; 3 #define rep(i,a,b) for(int i=a;i<=b;++i) 4 #define fgr(i,u) for(int
洛谷十月月賽
如果 打表 奇數 new 回文 十月 http clas 維護 (比賽鏈接)[https://www.luogu.org/contestnew/show/11084] T1 50分 : 暴力 100分· : 臨時數組記錄位置 T2 先看s = 0時 對於一個合理串 把它每一
洛谷十月月賽2T1瀏覽器P4932
傳送門 https://www.luogu.org/problemnew/show/P4932 題面 題目描述 __stdcall給了你n個點,第i個點有權值x[i],對於兩個點u和v,如果x[u] xor x[v]的結果在二進位制表示下有奇數個1,那麼在u和v之間連線一個Edg
[BZOJ5073] [Lydsy1710月賽]小A的咒語 字尾陣列+dp+貪心
題目連結 首先這種題一看就是dp。 設\(dp[i][j]\)表示\(A\)序列中到\(i\)位之前,取了\(j\)段,在\(B\)中的最長的長度。 轉移也比較簡單 \[ dp[i][j] \to dp[i+1][j] \quad \text{不選} \\ dp[i][j] \to dp[i+k][j
洛谷11月月賽題解(A-C)
心路歷程 辣雞T3卡我1.5h題意,要不是最後nlh跟我解釋了一下大樣例估計這次是真涼透了。。 A P4994 終於結束的起點 打出暴力來發現跑的過最大資料?? 保險起見還是去oeis了一波,然後被告知第一個滿足條件的位置不會超過\(2n +2\) 贏了 #include<bits/stdc++.h&g
BZOJ 4883 [Lydsy2017年5月月賽]棋盤上的守衛(最小生成環套樹森林)
print 我們 size -s nbsp long pan typedef 包含 【題目鏈接】 http://www.lydsy.com/JudgeOnline/problem.php?id=4883 【題目大意】 在一個n*m的棋盤上要放置若幹個守衛
spoj COT - Count on a tree (樹上第K小 LCA+主席樹)
roo sizeof 過程 mes problems ems name ret bit 鏈接: https://www.spoj.com/problems/COT/en/ 思路: 首先看到求兩點之前的第k小很容易想到用主席樹去寫,但是主席樹處理的是線性結構,而這道題要
BZOJ5072 小A的樹(樹形dp)
容易猜到能選擇的黑點個數是一個連續區間。那麼設f[i][j]為i子樹內選j個點形成包含根的連通塊,最多有幾個黑點,g[i][j]為最少有幾個黑點,暴力dp是O(n2)的,求出每個連通塊大小對應的黑點數量取值範圍即可。 驚覺差點不會樹形揹包了。注意不要出現任何非法轉移,即使看上去無傷大雅。 #
Count on a tree 樹上 (u,v)的路上的第K小的權值(主席樹+樹剖lca
題目連結 題目大意: 就是求在樹上 (u,v)的路上的第K小的權值 解題思路: 首先對於求第K小的問題 我們可以用主席樹搞 ,沒有問題, 但是對於一個樹形結構,我們需要將其轉化為線性,然後需要樹剖才能做. 然後考慮鏈上的第k值怎麼維護 , 發現如果樹剖計算的話
西南民族大學第十屆校賽(同步賽)(I題——小A的期末作業)
題目描述 期末了, 老師給小A佈置了一道期末作業, 讓小A設計一個圖案, 追求完美的小A想要用程式設計來完成這個圖案: 小A想要設計一個由符號組成的“大於號”圖案, 圖案的大小為n, 一共有2n-1行, 每行有n個符號, 每一行前面有一些空格。 第一行沒有空格, 第二行有一個空格
bzoj4881 [ Lydsy2017年5月月賽 ] -- 二分圖染色+線段樹
splay 最大的 include alt sed string cstring pan 最小 以下是Claris的題解: 若線段 i 和 j 相交,那麽在它們之間連一條邊。若這個圖不是二分圖,那麽無解,否則令cnt 為連通塊個數,那麽 ans = 2cnt。 在二分圖染色
P3817 小A的糖果(洛谷月賽)
print long -c font ron -a urn lld strong P3817 小A的糖果 題目描述 小A有N個糖果盒,第i個盒中有a[i]顆糖果。 小A每次可以從其中一盒糖果中吃掉一顆,他想知道,要讓任意兩個相鄰的盒子中