有一棵樹,樹上有n
nn個節點,第i個節點上有點權a
ia_i
ai,問中有多少個不同的連通塊滿足連通塊的最大值與最小值之差=k=k
=k,兩個連通塊不同當且僅當至少存在乙個節點在乙個連通塊中出現而另乙個連通塊中沒有出現。
n
<
=3333,0
<=a
i<=n
,k
>=0
n<=3333,0<=a_i<=n,k>=0
n<=3
333,
0<=a
i<=n
,k>=0
等於k的數量=小於等於k的數量-小於等於k-1的數量
分別以每個結點為根做一遍樹形dp求出數量即可
對於可能的重複,我們每次只操作編號比當前的根小的,並且規定根是連通塊中最大的即可
時間複雜度:o(n
2)
o(n^2)
o(n2
)
#include #include #include #include #include #include #define n 10005
using namespace std;
typedef long long ll;
const int mod = 19260817;
struct node e[n];
int val[n], ls[n], n, k, cnt;
int read(int &x)
while (s >= '0' && s <= '9')
x = x * f;
}void addedge(int u, int v)
ll dfs(int x, int father, int root, int k)
return sum % mod;
}int main()
ll ans1 = 0;
ll ans2 = 0;
for (int i = 1; i <= n; i++)
printf("%lld\n", (ans1 + mod - ans2) % mod);
}
591 標籤驗證器
給定乙個表示 片段的字串,你需要實現乙個驗證器來解析這段 並返回它是否合法。合法的 片段需要遵守以下的所有規則 必須被合法的閉合標籤包圍。否則,是無效的。閉合標籤 不一定合法 要嚴格符合格式 tag content。其中,是起始標籤,是結束標籤。起始和結束標籤中的 tag name 應當相同。當且僅...
591acm 動態規劃
題意簡述 需要購買n件物品,從m件商品中按順序進行選擇,求出從m件商品中購買到所需的n件物品最低消費,如果購不齊輸出impossible n 0 n 100 m 0 m 100。例1 2 3 1 2 2 0.05 1 10.00 1 3.00 impossible 例2 2 3 1 2 1 10.0...
Qt5 9 1 qmake中文手冊(一)
qmake工具有助於簡化跨平台專案的開發.它自動生成makefiles,只需要很少的資訊就可以建立makefiles。無論是qt專案或者是其他軟體專案,都可以使用qmake。qmake通過專案檔案 pro 裡提供的資訊自動生成makefiles.專案檔案 pro 由開發者建立,通常專案檔案 pro ...