【题解】 bzoj1923: [Sdoi2010]外星千足虫 (线性基/高斯消元)
Solution:
- 这个高斯消元/线性基很好看出来,主要是判断在第K 次统计结束后就可以确定唯一解的地方和\(bitset\)的骚操作
- (我用的线性基)判断位置,我们可以每次加入一个线性基时判断是不是全被异或掉了,如果没有,说明这个方程不是冗余的,那么我们可记录非冗余方程个数
- 如果非冗余方程个数小于\(n\),那就是个不定方程组,有无数种解,否则,在个数第一次达到\(n\)时,就可输出当时输入方程的号码
- 还有一个点就是压空间与时间,这题主要是时间,用到大杀器\(bitset\),具体看我,这位辽宁省队巨佬的博客吧
Code:
//It is coded by Ning_Mew on 5.29
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e3+7,maxm=2e3+7;
int n,m;
int ans[maxn],tot=0;
bitset<maxn>x[maxn];
string s;
bool pr;
void push(bitset<maxn>S){
for(int i=n-1;i>=0;i--){
if(S[i]){
if(x[i][i]){S=(S^x[i]);}
else {x[i]=S;tot++;return;}
}
}
}
int main(){
scanf("%d%d",&n,&m);
if(m<n){printf("Cannot Determine\n");return 0;}
pr=false;
for(int i=1;i<=m;i++){
cin>>s; bitset<maxn>S(s);
cin>>s; if(s[0]=='1')S.flip(n);
//cout<<i<<":"<<S[0]<<' '<<S[1]<<' '<<S[2]<<' '<<S[3]<<endl;
push(S);if(tot==n&&!pr)pr=true,printf("%d\n",i);
}
if(tot<n){printf("Cannot Determine\n");return 0;}
for(int i=n-1;i>=0;i--){
for(int j=i-1;j>=0;j--){
if(x[i][j]){x[i]=(x[i]^x[j]);}
}
if(x[i][n])printf("?y7M#\n");
else printf("Earth\n");
}
return 0;
}
博主蒟蒻,随意转载。但必须附上原文链接:http://www.cnblogs.com/Ning-Mew/,否则你会终生找不到妹子!!!
【题解】 bzoj1923: [Sdoi2010]外星千足虫 (线性基/高斯消元)的更多相关文章
- [bzoj 2844]线性基+高斯消元
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2844 又用到线性基+高斯消元的套路题了,因为经过高斯消元以后的线性基有非常好的序关系,所以 ...
- bzoj千题计划188:bzoj1923: [Sdoi2010]外星千足虫 (高斯—若尔当消元法解异或方程组)
http://www.lydsy.com/JudgeOnline/problem.php?id=1923 #include<cstdio> #include<cstring> ...
- BZOJ1923:[SDOI2010]外星千足虫(高斯消元)
Description Input 第一行是两个正整数 N, M. 接下来 M行,按顺序给出 Charles 这M次使用“点足机”的统计结果.每行 包含一个“01”串和一个数字,用一个空格隔开.“01 ...
- BZOJ1923 [Sdoi2010]外星千足虫 【高斯消元】
题目 输入格式 第一行是两个正整数 N, M. 接下来 M行,按顺序给出 Charles 这M次使用"点足机"的统计结果.每行 包含一个"01"串和一个数字,用 ...
- bzoj1923[Sdoi2010]外星千足虫(高斯消元)
Description Input 第一行是两个正整数 N, M. 接下来 M行,按顺序给出 Charles 这M次使用“点足机”的统计结果.每行 包含一个“01”串和一个数字,用一个空格隔开.“01 ...
- 【bzoj4004】【JLOI2015】装备购买 (线性基+高斯消元)
Description 脸哥最近在玩一款神奇的游戏,这个游戏里有 n 件装备,每件装备有 m 个属性,用向量zi(aj ,.....,am) 表示 (1 <= i <= n; 1 < ...
- Codeforces.472F.Design Tutorial: Change the Goal(构造 线性基 高斯消元)
题目链接 \(Description\) 给定两个长为\(n\)的数组\(x_i,y_i\).每次你可以选定\(i,j\),令\(x_i=x_i\ \mathbb{xor}\ x_j\)(\(i,j\ ...
- [hdu 3949]线性基+高斯消元
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3949 一开始给做出来的线性基wa了很久,最后加了一步高斯消元就过了. 之所以可以这样做,证明如下. 首 ...
- 洛谷P3265 [JLOI2015]装备购买(线性基+高斯消元)
传送门 不知道线性基是什么东西的可以看看蒟蒻的总结 不难看出题目讲的就是线性基 这种最小化权值的问题一般都是贪心的,就是按价值从低到高考虑每一个是否能选 据说贪心的证明得用拟阵我不会 据说这题是实数意 ...
随机推荐
- Linux服务器安全之 fail2ban的安装与配置
近日在查看Nginx的访问日志中,发现了大量404请求,仔细研究一番发现有人正在试图爆破网站. 我刚上线你就企图攻击我?????? 这怎么能忍.. 于是乎 --- 查资料后得知有一个神奇的工具 fai ...
- WPF Get jiayuan outbox list(send mail box)
Request URL: http://www.jiayuan.com/msg/outbox/list.php Request Method: POST form data: type=all&a ...
- 20155220 Exp2 后门原理与实践
20155220 Exp2 后门原理与实践 1.Windows获得Linux Shell 在windows下,打开CMD,使用ipconfig指令查看本机IP 然后使用ncat.exe程序,ncat. ...
- POJ2488&&3083&&3009&&1321&&2251&&2049
刷完了大力数据结构(水比数据结构专题)后又开始搞无脑搜索专题了 这次的标签是DFS(这TM的到现在了谁还不会) 2488 跳马问题:给出一个棋盘,让你求一个方案使一匹马能花最短的时间不重复不遗漏地跳完 ...
- 阿里云代金券 - 双12疯了~~~ 4核8G 3M带宽只要1890元/3年
阿里云双12大促简直疯了,4核8G 3M带宽只要1890元/3年,比双11疯狂多了,双11没有上车的赶快来买吧!!! 前去阿里云双12活动页面 截图如下: 从截图中可以看出,不仅4核8G降到了地板,1 ...
- HTML基础之JS
HTML中的三把利器的JS 又称为JavaScript,看着好像和Java有点联系,实际上他和java半毛钱关系都没有,JavaScript和我们学习的Python.Go.Java.C++等,都是一种 ...
- stl源码剖析 详细学习笔记 仿函数
//---------------------------15/04/01---------------------------- //仿函数是为了算法而诞生的,可以作为算法的一个参数,来自定义各种操 ...
- LeetCode 3Sum (Two pointers)
题意 Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all ...
- tcp ,http .udp
三次握手,四次挥手要知道,记住. 计算机协议常见面试题,学会了,记住.会运用.
- linuxC/C++面试问题总结整理
linuxC/C++面试问题总结整理 因为一些原因重新找工作了,面的linux c/c++,这里把面试中经常碰到的问题总结一下. linuxC/C++面试问题总结整理 单元测试 关键字const 关键 ...