BZOJ 1923 SDOI2010 外星千足虫 异或方程组+bitset
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1923
懒得贴题目了......这就是解一个异或方程组的裸题......
YY了一下异或方程就没毛病了!
感受了一下bitset的力量噢噢噢!!!!!!
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<cmath>
#include<queue>
#include<set>
#include<map>
#include<vector>
#include<cctype>
#include<bitset>
using namespace std;
const int maxn=;
const int maxm=; int N,M;
bool b[maxm],x[maxm];
char s[maxn];
bitset<maxn>a[maxm]; void data_in()
{
scanf("%d%d",&N,&M);
for(int i=;i<=M;i++){
scanf("%s",s+);
for(int j=;j<=N;j++) a[i][j]=s[j]-'';
scanf("%s",s+);
b[i]=s[]-'';
}
}
int Gauss()
{
int i=,j=,re=;
while(i<=M&&j<=N){
re=max(re,i);
if(!a[i][j]){
int tmp=;
for(int r=i+;r<=M;r++)
if(a[r][j]) { tmp=r; break; }
if(!tmp) return ;
re=max(re,tmp);
swap(a[i],a[tmp]); swap(b[i],b[tmp]);
}
for(int r=i+;r<=M;r++){
if(!a[r][j]) continue;
a[r]^=a[i],b[r]^=b[i];
}
i++,j++;
}
if(j<=N) return ;
for(int r=N;r>=;r--){
x[r]=b[r];
for(int rr=r-;rr>=;rr--)
b[rr]^=*a[rr][r]*x[r];
}
return re;
}
void work()
{
int ans=;
if(ans=Gauss()){
printf("%d\n",ans);
for(int i=;i<=N;i++)
puts(x[i]?"?y7M#":"Earth");
}
else puts("Cannot Determine");
}
int main()
{
data_in();
work();
return ;
}
BZOJ 1923 SDOI2010 外星千足虫 异或方程组+bitset的更多相关文章
- BZOJ 1923: [Sdoi2010]外星千足虫 高斯消元+bitset
高斯消元求解异或方程组,可以多学一下 $bitset$ 在位运算中的各种神奇操作. #include <cstdio> #include <bitset> #define N ...
- BZOJ 1923: [Sdoi2010]外星千足虫 [高斯消元XOR]
1923: [Sdoi2010]外星千足虫 对于 100%的数据,满足 N≤1,000,M≤2,000. 裸高斯消元解异或方程组 给定方程顺序要求用从上到下最少的方程,那么找主元时记录一下最远找到哪个 ...
- bzoj 1923 [Sdoi2010]外星千足虫(高斯消元+bitset)
1923: [Sdoi2010]外星千足虫 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 634 Solved: 397[Submit][Status ...
- BZOJ.1923.[SDOI2010]外星千足虫(高斯消元 异或方程组 bitset)
题目链接 m个方程,n个未知量,求解异或方程组. 复杂度比较高,需要借助bitset压位. 感觉自己以前写的(异或)高斯消元是假的..而且黄学长的写法都不需要回代. //1100kb 324ms #i ...
- BZOJ 1923: [Sdoi2010]外星千足虫
Description 给出几个异或方程组求解,\(n \leqslant 2000\) Sol 高斯消元. 直接消元就行,遇到自由元就直接输出,同时记录一下用到的最高行数. 复杂度不科学就可以用 b ...
- bzoj 1923: [Sdoi2010]外星千足虫【高斯消元】
裸的异或高斯消元 #include<iostream> #include<cstdio> using namespace std; const int N=2005; int ...
- 洛谷P2447 [SDOI2010]外星千足虫(异或方程组)
题意 题目链接 Sol 异或高斯消元的板子题. bitset优化一下,复杂度\(O(\frac{nm}{32})\) 找最优解可以考虑高斯消元的过程,因为异或的特殊性质,每次向下找的时候找到第一个1然 ...
- 【BZOJ 1923】1923: [Sdoi2010]外星千足虫 (高斯消元异或 | BITSET用法)
1923: [Sdoi2010]外星千足虫 Description Input 第一行是两个正整数 N, M. 接下来 M行,按顺序给出 Charles 这M次使用“点足机”的统计结果.每行 包含一个 ...
- 1923: [Sdoi2010]外星千足虫
1923: [Sdoi2010]外星千足虫 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 1254 Solved: 799[Submit][Statu ...
随机推荐
- Angularjs实例2
<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...
- apache开启.htaccess及使用方法
1 . 如何让的本地APACHE器.htaccess 如何让的本地APACHE呢?其实只要简朴修改一下apache的httpd.conf设置就让APACHE.htaccess开启了,来看看操作 打开h ...
- Xcode DeviceSupport
问题:Could not locate device support files. This iPhone 6s is running iOS 12.1 (16B5059d), which may n ...
- 零基础Python知识点回顾(一)
如果你是小白,建议只要安装官网的python-3.7.0-amd64.exe 然后在电脑cmd命令提示符 输入检查是否已经安装pip,一般安装了python都会有的. >pip ...
- stl之std::remove_copy
template <class InputIterator, class OutputIterator, class T> OutputIterator remove_copy (Inpu ...
- Angularjs基础(十)
ng-blur 描述:规定blur 事件的行为 实例:当输入框失去焦点的(onblur)时执行表达式: <input ng-blur="count = count + 1" ...
- Java程序如何生成Jar 执行文件(2)
一.用Eclipse生产Jar文件 注意:此方法可以打包含有第三方jar包的项目 1. 首先,右键你的Java工程,选择Export,在Java文件夹下选择Runnable JAR file,如下图所 ...
- 路由器基础配置之ppp封装下的pap,chap认证
我们将以上面的拓扑图完成本次实验,路由器的默认封装为HDLC,要求为把路由器全被更改为ppp封装,并在router3与router4之间用pap认证,在router4与router5之间用chap认证 ...
- 创建私有CA并签发证书
一.创建私有CA 1.创建所需要的文件 2.创建私有密钥 3.CA自签证书 -new: 生成新证书签署请求: -x509: 专用于CA生成自签证书:不自签的时候不要加该选项 ...
- http状态码(status_codes)
首先:1XX 接受的请求正在处理,2XX请求正常处理完毕,3XX需要进行附加操作以完成请求(重定向?),4XX服务器无法处理请求(也就是客户端请求错误),5XX服务器处理请求出错. 当然不仅仅是一张图 ...