lpoj5576 hongrock的檸檬樹

2021-09-27 10:08:07 字數 1026 閱讀 9516

題目:

輸入一棵樹,求樹上所有兩點之間路徑或之和。

權神設計出來是用並查集做的。

然而第一反應就是向上合併維護二進位制位。寫了一發維護1的個數愉快的wa了,之後就忘了有這題了。最近這題被大師兄秒掉了,被教育了一手可以先當成整棵樹全是1來做,然後再合併0的個數,減掉0的情況。

瞬間好寫了很多。。。。

我們把子樹0的個數向上合併的時候,檢查一下父節點這一位是否是0,如果是0才合併,因為父節點是所以子節點的必經之路,如果父節點是1,那麼子節點經過父節點往上或出來這一位就是1了。

ac**:

#include

using namespace std;

const

int maxn =

1e5+5;

typedef

long

long ll;

ll ans;

int n, val[maxn]

;int p[20]

, sz[maxn][20

];vector<

int> g[maxn]

;void

crack

(int x)

}void

dfs(

int x,

int fa)

dfs(v, x)

;for

(int i =

0; i <20;

++i)}}

}int

main()

int u, v;

for(

int i =

1; i < n;

++i)

p[0]

=1;for

(int i =

1; i <20;

++i)

for(

int i =

0; i <20;

++i)

dfs(1,

0); cout << ans;

return0;

}

LPOJ 開發教程(九)實用工具

lpoj www.lpoj.cn lpoj文件 docs.lpoj.cn 在管理員頁面設定好爬蟲資訊後,可以啟動爬蟲機械人進行爬蟲。主要可以爬取的資訊是 各oj做題數,部落格,和近期比賽列表 python main.pymain.py 這個資料夾中,包含了各種實用的工具!此指令碼基於sim工具查重 ...

leetcode 557反轉字串

給定乙個字串,你需要反轉字串中每個單詞的字元順序,同時仍保留空格和單詞的初始順序。示例 1 輸入 let s take leetcode contest 輸出 s tel ekat edocteel tsetnoc 注意 在字串中,每個單詞由單個空格分隔,並且字串中不會有任何額外的空格。方法一 因為...

紫書 習題 10 12 UVa 557(概率計算)

開始的時候我沒有考慮1 2的概率,直接一波組合數,然後wa 後來去看題解發現我們可以反過來想,求最後兩個人不一樣的情況 這個時候肯定會拋到最後的 所以每一種可能就是 0.5 n 2 然後一共有c n 2,n 2 1 種 乘起來就ok了。但是這樣會超時而且結果太大 所以我們可以嘗試遞推 通過計算可以發...