同上一題。(應該可以樹形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暴...