題解 Bichromization 構造

2022-02-23 18:45:42 字數 1089 閱讀 3888

咕咕咕

刪邊操作直接令其=1e9就好了,圖的構造肯定先想想直接構造成樹怎麼做,我們直接令需要滿足\(d_i\)的條件的那些最短路就=一條邊。那麼直接弄出一顆wb相間的森林即可,並且令父邊=\(d_i\)。

但是每棵樹的根節點沒有父邊啊!仔細思考發現,找到乙個連線兩個相等的\(d\)的並令其中乙個為根即可。這樣一條父邊滿足了兩個\(d_i\)的條件的限制。

充分性是顯然的,下證必要性

能夠如上構造方案的充要條件是存在一條兩端d相等的邊。

這其實是兩個條件,點和邊。

先證最小的那條需要滿足條件的路徑的兩端的d相同,不然一定有乙個無法滿足d的條件。設這條路徑長度為len。

再證這條路徑經過的點數=2,這也是顯然的,因為如果》2,中間的乙個點是無法滿足條件的,因為這條路徑兩端是一w一b,一定有乙個使得他的最短路具體實現直接bfs就好了。

//@winlere

#include#include#include#include#includeusing namespace std; typedef long long ll;

inline int qr()

const int maxn=1e5+5;

const int inf=1e9;

struct ee[maxn<<2];

int head[maxn],ans[maxn<<1],usd[maxn],n,m,cnt,d[maxn];

char col[maxn];

void add(int fr, int to); head[fr]=cnt;

e[++cnt]=(e); head[to]=cnt;

}queue< int > q;

int main()

while(q.size())

for(int t=1;t<=n;++t)

if(col[t]==0)

return puts("-1"),0;

puts(col+1);

for(int t=1;t<=m;++t)

printf("%d\n",ans[t]?ans[t]:inf);

return 0;

}

沒有題解的題解

考試要寫題解,可我不會寫,然後就變成了沒有題解的題解了 frist.評價 這是一道只考讀入的題。題面 n m的方陣,輸出被 包圍的 0 的個數。做法 讀入 本題難點 然後做一遍遍歷,將在方陣邊緣的0全部做一遍dfs遍歷將與其連成一塊的 0 全部變成 然後數一遍有幾個 0 就可以了。還在完善中,只能給...

題解 LibreOJ 6229 題解

題目鏈結 給定 n 求 f n sum n sum i frac i,j bmod 10 9 7 1 le n le 10 9 首先,這個求和範圍有些不爽,利用對稱性轉化一下得 f n frac 12 left n sum n sum n frac i,j right 然後推一下式子 begin s...

題解 CF1119H Tripe題解

題目傳送門 給出 n,t,x,y,z 值域 le 2 t 給出 n 個三元組 a i,b i,c i 表示有 x 個 a i y 個 b i z 個 c i 對於每個 k in 0,2 t 1 求出從每組選出乙個數的異或值為 k 的方案數。先定義 delta n f delta 表示多項式 f 的第...