1770: [Usaco2009 Nov]lights 燈 高斯消元解异或方程组+dfs
来源:互联网 发布:js 对象key 编辑:程序博客网 时间:2024/06/02 13:16
虽然过掉了。。但还是各种疑惑与不解啊。。
主要原因就是,需不需要设立一个指针x,在遇到自由元时不+1否则+1,我这么写就挂掉了。但是看网上说如果不这样会出问题。。怎么回事啊到底。。
求各位神犇解答。。
在NanoApe神犇的帮助下终于解决了这个问题。感谢!
#include<iostream>#include<cstdio>#include<cmath>#define inf 1000000007using namespace std;int n,m,tot,mn=inf;int a[45][45],ans[45];inline int read(){ int a=0,f=1; char c=getchar(); while (c<'0'||c>'9') {if (c=='-') f=-1; c=getchar();} while (c>='0'&&c<='9') {a=a*10+c-'0'; c=getchar();} return a*f;}inline void gauss(){ int y; for (int i=1;i<=n;i++) { for (y=i;y<=n;y++) if (a[y][i]) break; if (y>n) continue; if (i!=y) for (int j=1;j<=n+1;j++) swap(a[i][j],a[y][j]); for (int j=1;j<=n;j++) if (j!=i&&a[j][i]) for (int k=1;k<=n+1;k++) a[j][k]^=a[i][k]; }}void dfs(int x){ if (tot>=mn) return; if (!x) { mn=min(mn,tot); return; } if (a[x][x]) { int t=a[x][n+1]; for (int i=x+1;i<=n;i++) if (a[x][i]) t^=ans[i]; ans[x]=t; if (t) tot++; dfs(x-1); if (t) tot--; } else { ans[x]=0; dfs(x-1); ans[x]=1; tot++; dfs(x-1); tot--; }}int main(){ scanf("%d%d",&n,&m); for (int i=1;i<=m;i++) { int u=read(),v=read(); a[u][v]=a[v][u]=1; } for (int i=1;i<=n;i++) a[i][i]=a[i][n+1]=1; gauss(); dfs(n); printf("%d\n",mn); return 0;}
0 0
- 1770: [Usaco2009 Nov]lights 燈 高斯消元解异或方程组+dfs
- BZOJ1770: [Usaco2009 Nov]lights 燈(异或方程组)
- [BZOJ]1770: [Usaco2009 Nov]lights 燈 高斯消元解xor方程组
- [Usaco2009 Nov]lights 燈
- BZOJ 1770: [Usaco2009 Nov]lights 燈
- 【高斯消元】BZOJ 1770: [Usaco2009 Nov]lights 燈
- BZOJ 1770 [Usaco2009 Nov] lights 燈
- bzoj 1770 [Usaco2009 Nov]lights 燈
- bzoj 1770: [Usaco2009 Nov]lights 燈
- bzoj1770[Usaco2009 Nov]lights 燈
- 1001: [Usaco2009 Nov]lights 燈
- BZOJ 1770 USACO 2009 Nov Lights 灯 高斯消元异或方程组
- bzoj 1770/Luogu 2962 [Usaco2009 Nov]lights 燈
- bzoj 1770: [Usaco2009 Nov]lights 燈 (高斯消元)
- 【BZOJ】1770 [Usaco2009 Nov]lights 燈 折半搜索
- [BZOJ1770][Usaco2009 Nov]lights 燈(高斯消元)
- bzoj1770[Usaco2009 Nov]lights 燈 高斯消元
- BZOJ1770: [Usaco2009 Nov]lights 灯
- Java手动创建一个内存泄漏的程序
- VB.NET入门了解
- 小众软件
- 集合的运算之链表实现
- 2416开发记录十二:ioremap
- 1770: [Usaco2009 Nov]lights 燈 高斯消元解异或方程组+dfs
- 状态压缩DP解POJ3254-Corn Fields
- COGS495窗口
- Linux统计文件夹和文件数量
- 开源免费接口的使用
- 7.8 使用GROUPING_ID()来扩展报告
- 7.11 小结
- 第8章 分析函数
- 8.4.1 跨越整个分区的聚合函数