BZOJ 1923: [Sdoi2010]外星千足虫 高斯消元+bitset
2024-09-03 18:39:32
高斯消元求解异或方程组,可以多学一下 $bitset$ 在位运算中的各种神奇操作.
#include <cstdio>
#include <bitset>
#define N 2004
#define setIO(s) freopen(s".in","r",stdin) , freopen(s".out","w",stdout)
using namespace std;
int n,m,ans;
char str[N];
bitset<N>v[N];
int main()
{
int i,j,k;
// setIO("input");
scanf("%d%d",&n,&m);
for(i=1;i<=m;++i)
{
int tmp;
scanf("%s%d",str+1,&tmp);
for(j=1;j<=n;++j) v[i][j]=(str[j]=='0'?0:1);
v[i][n+1]=tmp;
}
for(i=1;i<=n;++i)
{
for(j=i;j<=m;++j)
{
if(v[j][i])
{
ans=max(ans,j),swap(v[j],v[i]);
break;
}
}
if(!v[i][i])
{
printf("Cannot Determine\n");
return 0;
}
for(j=i+1;j<=m;++j) if(v[j][i]) v[j]^=v[i];
}
printf("%d\n",ans);
for(i=1;i<=n;++i)
{
for(j=i+1;j<=n;++j) if(v[i][j]) v[i]^=v[j];
if(v[i][n+1]) printf("?y7M#\n");
else printf("Earth\n");
}
return 0;
}
最新文章
- 多线程的通信和同步(Java并发编程的艺术--笔记)
- 该不该在C#中使用var关键词
- hdu3635 Dragon Balls(带权并查集)
- 关闭Windows Update更新驱动程序
- Java读取word文档,转换为网页
- cocos2d-x的环境的搭建
- [转载]Spring Bean Definition Inheritance
- VC 最爱问的问题:你这个创业项目,如果腾讯跟进了,而且几乎是产品上完全复制,你会怎么办?
- CodeForces 595B
- Android 主线程和线程之间相互发送消息
- [HNOI2011]数矩形
- Maven全局配置
- Mysql-12条优化技巧
- [UWP]为附加属性和依赖属性自定义代码段(兼容UWP和WPF)
- centos7.5图形界面与命令行界面转换
- SpringMVC源码阅读入门
- Git:配置
- 跟我学SharePoint 2013视频培训课程——使用垃圾箱(5)
- 【Unity】10.1 类人动画的导入和设置
- Swift中Notification.Name这么难用怎么办