Jzoj4822 完美標號

2022-05-09 16:26:40 字數 630 閱讀 8302

題意:給定m個二元組(a_i, b_i),求x_1, ..., x_n滿足:對於任意(a_i, b_i),有|x_ - x_| = 1成立。

我們發現,如果有解,那麼一定存在一組解只有0,1構成

證明:對於乙個可行的解x,顯然解集y(yi=xi%2)也是這個問題的乙個解

於是我們將這些二元組連線成一張圖,進行一次dfs標號即可,標號時用一條邊連線起來的兩個點不能同為0或1即可

#include

struct edge g[200010];

int h[10010],c[10010],vis[10010],n,m,cnt=0;

bool dfs(int x,int cl)

else

return1;}

int main(); h[x]=cnt;

g[++cnt]=(edge); h[y]=cnt;

} for(int i=1;i<=n;++i)

if(!vis[i]&&!dfs(i,0)) return

0&puts("no");

puts("yes");

for(int i=1;i<=n;++i) printf("%d ",c[i]);

}

交叉編譯Qt4 8 2

分類 linux qt 2012 07 04 11 36 171人閱讀收藏 舉報 1.安裝交叉編譯器。利用友善之臂自帶的交叉編譯器。將arm linux gcc 4.3.2.tgz 放在 root下,執行如下操作 cd root tar xvzf arm linux gcc 4.3.2.tgz c ...

482 金鑰格式化

給定乙個金鑰字串s,只包含字母,數字以及 破折號 n 個 將字串分成了 n 1 組。給定乙個數字 k,重新格式化字串,除了第乙個分組以外,每個分組要包含 k 個字元,第乙個分組至少要包含 1 個字元。兩個分組之間用 破折號 隔開,並且將所有的小寫字母轉換為大寫字母。給定非空字串 s 和數字 k,按照...

482 金鑰格式化

有乙個金鑰字串 s 只包含字母,數字以及 破折號 其中,n 個 將字串分成了 n 1 組。給你乙個數字 k,請你重新格式化字串,除了第乙個分組以外,每個分組要包含 k 個字元 而第乙個分組中,至少要包含 1 個字元。兩個分組之間需要用 破折號 隔開,並且將所有的小寫字母轉換為大寫字母。給定非空字串 ...