[BZOJ2466][中山市选2009]树(高斯消元+dfs)
来源:互联网 发布:java lucene 教程 编辑:程序博客网 时间:2024/05/22 01:47
题目描述
传送门
题解
开关灯问题。。。
代码
#include<algorithm>#include<iostream>#include<cstring>#include<cstdio>#include<bitset>#include<cmath>using namespace std;#define N 105int n,x,y,now,Min;int tot,point[N],nxt[N*2],v[N*2];bitset <N> a[N];int b[N],ans[N];void clear(){ x=y=now=Min=0; tot=0;memset(point,0,sizeof(point)); for (int i=1;i<=n;++i) a[i].reset(); memset(b,0,sizeof(b));memset(ans,0,sizeof(ans));}void add(int x,int y){ ++tot; nxt[tot]=point[x]; point[x]=tot; v[tot]=y;}void dfs(int dep){ if (!dep) { Min=min(Min,now); return; } if (now>=Min) return; for (int i=dep+1;i<=n;++i) if (a[dep][i]) b[dep]^=ans[i]; if (a[dep][dep]) { ans[dep]=b[dep]; if (ans[dep]) ++now; dfs(dep-1); if (ans[dep]) --now; } else { ans[dep]=0; dfs(dep-1); ans[dep]=1;++now; dfs(dep-1); ans[dep]=0;--now; } for (int i=dep+1;i<=n;++i) if (a[dep][i]) b[dep]^=ans[i];}void gauss(){ for (int i=1;i<=n;++i) { if (!a[i][i]) { for (int j=i+1;j<=n;++j) if (a[j][i]) {a[i]^=a[j];b[i]^=b[j];break;} } for (int j=i+1;j<=n;++j) if (a[j][i]) a[j]^=a[i],b[j]^=b[i]; } dfs(n);}int main(){ while (~scanf("%d",&n)) { if (!n) break; clear(); for (int i=1;i<n;++i) { scanf("%d%d",&x,&y); add(x,y),add(y,x); } for (int i=1;i<=n;++i) { a[i][i]=1;b[i]=1; for (int j=point[i];j;j=nxt[j]) a[i][v[j]]=1; } Min=2100000000;gauss(); printf("%d\n",Min); }}
0 0
- [BZOJ2466][中山市选2009]树(高斯消元+dfs)
- 【bzoj2466】【中山市选】【树】【高斯消元+dfs】
- 【bzoj2466】[中山市选2009]树 高斯消元
- BZOJ2466: [中山市选2009]树
- bzoj2466 [中山市选2009]树
- 【BZOJ2466】【中山市选2009】树 高斯消元解异或方程组
- BZOJ2466——[中山市选]树
- 【bzoj2466】【caioj1113】树---树形DP/高斯消元+dfs
- bzoj 2466: [中山市选2009]树 (高斯消元)
- BZOJ 2466: [中山市选2009]树 高斯消元
- BZOJ 2466 中山市选2009 树 高斯消元+暴力
- 树(tree) --中山市2009市选第四题
- [BZOJ2463] [中山市选2009]谁能赢呢?(博弈)
- bzoj2466高斯消元求解XOR方程
- bzoj2466 树形DP xor 高斯消元
- 2463: [中山市选2009]谁能赢呢?
- [BZOJ2463]中山市选2009 谁能赢呢
- 【中山市选2009】【BZOJ2463】谁能赢呢
- 封装所有版本兼容的Material风格的时间选择器和日期选择器
- 设计模式---6大原则
- 计算账户的余额及日均余额
- Pycharm远程调试之ssh remote debug(三) -- Before Launch
- 如何解决FPS/RTS/赛车类游戏的同步问题
- [BZOJ2466][中山市选2009]树(高斯消元+dfs)
- ArrayList源码
- Mysql主从复制
- 【Spring】Spring Framework Reference Documentation中文版11
- hdu 1237&&九度oj 1019 简单计算器
- Android提示版本更新
- Android Studio插件整理(二)
- C#中如何使用SQLite数据库
- servlet-api与tomcat(可爱的tom猫)