bzoj2466 中山市選2009 樹

2022-03-30 21:43:02 字數 1163 閱讀 1217

同上一題。(應該可以樹形dp,然而我不會。。。

#include#include#include#include#includeusing namespace std;

#define rep(i,s,t) for(int i=s;i<=t;i++)

#define dwn(i,s,t) for(int i=s;i>=t;i--)

#define clr(x,c) memset(x,c,sizeof(x))

int read()

const int nmax=105;

const int inf=0x7f7f7f7f;

bitseta[nmax];

int ans[nmax],res=inf,tot=0,n;

void gauss(int n,int m)

}void dfs(int x)

if(a[x][x])else

}int main()

res=inf;tot=0;

gauss(n,n+1);

dfs(n);

printf("%d\n",res);

} return 0;

}

time limit: 10 sec  memory limit: 128 mb

submit: 735  solved: 312

[submit][status][discuss]圖論中的樹為乙個無環的無向圖。給定一棵樹,每個節點有一盞指示燈和乙個按鈕。如果節點的按扭被按了,那麼該節點的燈會從熄滅變為點亮(當按之前是熄滅的),或者從點亮到熄滅(當按之前是點亮的)。並且該節點的直接鄰居也發生同樣的變化。

開始的時候,所有的指示燈都是熄滅的。請程式設計計算最少要按多少次按鈕,才能讓所有節點的指示燈變為點亮狀態。

輸入檔案有多組資料。

輸入第一行包含乙個整數n,表示樹的節點數目。每個節點的編號從1到n。 

輸入接下來的n – 1行,每一行包含兩個整數x,y,表示節點x和y之間有一條無向邊。

當輸入n為0時,表示輸入結束。

對於每組資料,輸出最少要按多少次按鈕,才能讓所有節點的指示燈變為點亮狀態。每一組資料獨佔一行。

31 2

1 30

1對於100%的資料,滿足1 <= n <=100。

[submit][status][discuss]

bzoj2466 中山市選2009 樹

題目描述 bz題解 1 高消。直接列異或方程組高消即可。include include include include using namespace std const int n 105 template inline void read t x while ch 0 ch 9 x f c in...

BZOJ 2466 中山市選2009 樹

題解 n 100 急忙叫隊友是不是暴力題啊.qko 好像我會o n 我 好巧,我也會o n 的,那就莽吧 四個狀態 dp1 x 0 表示不摁且這個節點不亮的個數 dp1 x 1 表示不摁且這個節點亮的個數 dp2 x 0 表示摁且這個節點不亮的個數 dp2 x 1 表示摁且這個節點亮的個數 incl...

2466 中山市選2009 樹

題目鏈結 題目大意 給定一棵樹,每個點有乙個0 1的權,一次操作可以使得x和x的直接鄰居點權 1,初始均為0,求最少多少次操作可以全部變成1 題解 樹形dp可以o n 解決 但這不重要 考慮對每個點列出乙個xor方程,這樣就可以高斯消元了 但是有可能有自由元 暴力列舉代入計算 我的收穫 gauss暴...