洛咕 P2447 [SDOI2010]外星千足虫
一开始以为是异或高斯消元,实际上是简单线性基。
直接往线性基里插入,直到线性基满了就解出来了。
// luogu-judger-enable-o2
#include<bits/stdc++.h>
#define il inline
#define vd void
typedef long long ll;
il int gi(){
int x=0,f=1;
char ch=getchar();
while(!isdigit(ch)){
if(ch=='-')f=-1;
ch=getchar();
}
while(isdigit(ch))x=x*10+ch-'0',ch=getchar();
return x*f;
}
std::bitset<1001>f[1001],s;
char S[1010],y[1010];
bool ans[1010];
int main(){
#ifndef ONLINE_JUDGE
freopen("2309.in","r",stdin);
freopen("2309.out","w",stdout);
#endif
int n=gi(),m=gi(),tot=0;
for(int yyb=1;yyb<=m;++yyb){
scanf("%s",S+1);
for(int i=1;i<=n;++i)s[i]=S[i]=='1';
s[0]=gi();
for(int i=s._Find_next(0);i<=n;i=s._Find_next(i)){
if(!y[i]){
y[i]=1,f[i]=s;++tot;
if(tot==n){
for(int i=n;i;--i){
ans[i]=f[i][0];
for(int j=f[i]._Find_next(i);j<=n;j=f[i]._Find_next(j))
ans[i]^=ans[j];
}
printf("%d\n",yyb);
for(int i=1;i<=n;++i)puts(ans[i]?"?y7M#":"Earth");
return 0;
}
break;
}else s^=f[i];
}
}
puts("Cannot Determine");
return 0;
}
洛咕 P2447 [SDOI2010]外星千足虫的更多相关文章
- 洛谷 P2447 [SDOI2010]外星千足虫
P2447 [SDOI2010]外星千足虫 题目描述 公元2089年6月4日,在经历了17年零3个月的漫长旅行后,“格纳格鲁一号”载人火箭返回舱终于安全着陆.此枚火箭由美国国家航空航天局(NASA)研 ...
- 洛谷P2447 [SDOI2010]外星千足虫(异或方程组)
题意 题目链接 Sol 异或高斯消元的板子题. bitset优化一下,复杂度\(O(\frac{nm}{32})\) 找最优解可以考虑高斯消元的过程,因为异或的特殊性质,每次向下找的时候找到第一个1然 ...
- [洛谷P2447][SDOI2010]外星千足虫
题目大意:有$n$个数,每个数为$0$或$1$,给你其中一些关系,一个关系形如其中几个数的异或和是多少,问最少知道前几个关系就可以得出每个数是什么,并输出每个数 题解:异或方程组,和高斯消元差不多,就 ...
- P2447 [SDOI2010]外星千足虫 (高斯消元)
题目 P2447 [SDOI2010]外星千足虫 解析 sol写到自闭,用文字描述描述了半个小时没描述出来,果然还是要好好学语文 用高斯消元求解异或方程组. 因为 \(奇数\bigoplus奇数=偶数 ...
- 【P2447 [SDOI2010]外星千足虫】 题解
题目链接:https://www.luogu.org/problemnew/show/P2447 dalao们都说简单...解异或方程组 可我不是dalao qwq #include <algo ...
- P2447 [SDOI2010]外星千足虫
怎么说呢? 因为是在mod 2 意义下的吗(一般是遇到二就可能是位运行算或二分图) 就可以利用异或计算. 因为奇数和偶数在二进制上就用判断最后一位就可以了 然后因为异或符合交换律和结合律 直接消元就可 ...
- 【题解】Luogu P2447 [SDOI2010]外星千足虫
原题传送门 根据题意,题目给的每个操作就相当于异或上选中的那几只虫子的足数(mod 2)等于0/1 这是一个异或方程组,珂以用高斯消元解出每个虫子的足数(mod 2).所需最小次数或判断有多解 但是看 ...
- Luogu P2447 [SDOI2010]外星千足虫 高斯消元
链接 给出的条件是异或类型的方程,可以直接用bitset优化高斯消元. 至于求K,在高斯消元时记录用到的最大的方程的编号即可. 代码: // luogu-judger-enable-o2 #inclu ...
- 【洛谷P2447】外星千足虫
题目大意:给定一个 M 个含 N 个未知数的异或方程组,保证有解,若存在唯一解,给出至少需要几个方程才能得出唯一解,若不存在,直接输出不存在. 题解:异或方程组也满足类似初等行变换的操作,只不过所有的 ...
随机推荐
- VUE入门准备------>ES6
声明变量的方式: var let const let 和 var的区别 var定义的变量是全局的会覆盖全局的定义 ; ;i<;i++){ console.log(i) } undefi ...
- 教你如何获取ipa包中的开发文件
教你如何获取ipa包中的开发文件 1. 从iTunes获取到ipa包 2. 修改ipa包然后获取里面的开发文件
- [控件] 创建出条形间隔效果的背景LineBackgroundView
创建出条形间隔效果的背景LineBackgroundView 效果: 使用: // // ViewController.m // LineBackgroundView // // Created by ...
- Redis学习---Redis操作之List
List操作,redis中的List在在内存中按照一个name对应一个List来存储 lpush(name,values) --> 实际上是左添加 # 在name对应的list中添加元素,每个新 ...
- Linux head/tail命令详解
head命令用于显示文件的开头的内容.在默认情况下,head命令显示文件的头10行内容. tail命令用于显示文件的结尾的内容.在默认情况下,taild命令显示文件的后10行内容. head常见命令参 ...
- NutzWk 5.0.x 微服务分布式版本开发及部署说明
NutzWk 5.x 已发布一段时间,这段时间基于此版本开发了智慧水务系统(NB-IOT).某物联网平台.某设备租赁平台.某智慧睡眠平台.某智慧园区项目等,开发和部署过程中遇到一些小问题,开这个帖子把 ...
- Uva1395 POJ3522 Slim Span (最小生成树)
Description Given an undirected weighted graph G, you should find one of spanning trees specified as ...
- 七:Java之封装、抽象、多态和继承
本文章介绍了关于Java中的面向对象封装.抽象.继承.多态特点 Java面向对象主要有四大特性:封装.抽象.继承和多态. 一.封装 封装就是将抽象得到的数据和行为(或功能)相结合,形成一个有机的总体, ...
- [HAOI2015]按位或
题目 好神的题啊 我们发现我们求这个东西如果常规\(dp\)的话可以建出一张拓扑图来,但是边的级别高达\(3^n\),转移的时候还要解方程显然不能通过本题 我们考虑神仙的\(min-max\)容斥 设 ...
- 对于高并发短连接造成Cannot assign requested address解决方法
https://www.cnblogs.com/dadonggg/p/8778318.html 感谢这篇文章给予的启发 在tcp四次挥手断开连接时,主动释放连接的一方最后会进入TIME_WAIT状态, ...