外星千足虫

题目链接

首先,它一看题解就是个高斯消元

只是改成了奇偶性的判断

性质:

奇数+奇数=偶数

奇数+偶数=奇数

偶数+奇数=奇数

偶数+偶数=偶数

于是我们用1表示奇数,0表示偶数

1+1=0

1+0=1

0+1=1

0+0=0

这个"+"好像可以换成"^" 。。。

于是开始搞死高斯消元

 // luogu-judger-enable-o2
#pragma GCC optimize ("O3")
#include<iostream>
#include<cstdio>
#include<bitset>
using namespace std;
int n,m,R;
bitset<> a[],ans;
char s[];
inline void read(int line)
{
scanf("%s",s);
for(int i=;i<=n;i++)
a[line][i]=s[i-]-'';
getchar();
char c=getchar();
a[line][n+]=c-'';
}
inline bool Gauss() //高斯消元模板
{
for(register int i=;i<=n;i++)
{
int j=i;
while(!a[j][i]&&j<=m) j++; //向下找到为1的一行
if(j==m+) return ;
R=max(j,R); //需要用到的行的最大行号
if(i!=j) swap(a[i],a[j]);
for(register int j=i+;j<=m;j++) //消元,将矩阵变换为上三角矩阵
if(a[j][i]&&i!=j) a[j]^=a[i];
// for(int k=1;k<=m;k++,puts(""))
// for(int l=1;l<=n+1;l++)
// cout<<a[k][l]<<' ';
// puts("");
}
return ;
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=;i<=m;i++) read(i);
if(Gauss())
{
printf("%d\n",R);
for(register int i=n;i>=;i--) //回代
{
ans[i]=a[i][n+];
for(register int j=i+;j<=n;j++)
if(a[i][j]&&ans[j]) ans[i]=!ans[i]; //只有奇数对当前答案产生影响
}
for(register int i=;i<=n;i++)
if(ans[i]) puts("?y7M#");
else puts("Earth");
}
else puts("Cannot Determine");
return ;
}

【洛谷P2447】[SDOI2010]外星千足虫的更多相关文章

  1. 洛谷 P2447 [SDOI2010]外星千足虫

    P2447 [SDOI2010]外星千足虫 题目描述 公元2089年6月4日,在经历了17年零3个月的漫长旅行后,“格纳格鲁一号”载人火箭返回舱终于安全着陆.此枚火箭由美国国家航空航天局(NASA)研 ...

  2. 洛谷P2447 [SDOI2010]外星千足虫(异或方程组)

    题意 题目链接 Sol 异或高斯消元的板子题. bitset优化一下,复杂度\(O(\frac{nm}{32})\) 找最优解可以考虑高斯消元的过程,因为异或的特殊性质,每次向下找的时候找到第一个1然 ...

  3. [洛谷P2447][SDOI2010]外星千足虫

    题目大意:有$n$个数,每个数为$0$或$1$,给你其中一些关系,一个关系形如其中几个数的异或和是多少,问最少知道前几个关系就可以得出每个数是什么,并输出每个数 题解:异或方程组,和高斯消元差不多,就 ...

  4. 洛咕 P2447 [SDOI2010]外星千足虫

    一开始以为是异或高斯消元,实际上是简单线性基. 直接往线性基里插入,直到线性基满了就解出来了. // luogu-judger-enable-o2 #include<bits/stdc++.h& ...

  5. 【洛谷P2447】外星千足虫

    题目大意:给定一个 M 个含 N 个未知数的异或方程组,保证有解,若存在唯一解,给出至少需要几个方程才能得出唯一解,若不存在,直接输出不存在. 题解:异或方程组也满足类似初等行变换的操作,只不过所有的 ...

  6. P2447 [SDOI2010]外星千足虫 (高斯消元)

    题目 P2447 [SDOI2010]外星千足虫 解析 sol写到自闭,用文字描述描述了半个小时没描述出来,果然还是要好好学语文 用高斯消元求解异或方程组. 因为 \(奇数\bigoplus奇数=偶数 ...

  7. 【P2447 [SDOI2010]外星千足虫】 题解

    题目链接:https://www.luogu.org/problemnew/show/P2447 dalao们都说简单...解异或方程组 可我不是dalao qwq #include <algo ...

  8. P2447 [SDOI2010]外星千足虫

    怎么说呢? 因为是在mod 2 意义下的吗(一般是遇到二就可能是位运行算或二分图) 就可以利用异或计算. 因为奇数和偶数在二进制上就用判断最后一位就可以了 然后因为异或符合交换律和结合律 直接消元就可 ...

  9. 【题解】Luogu P2447 [SDOI2010]外星千足虫

    原题传送门 根据题意,题目给的每个操作就相当于异或上选中的那几只虫子的足数(mod 2)等于0/1 这是一个异或方程组,珂以用高斯消元解出每个虫子的足数(mod 2).所需最小次数或判断有多解 但是看 ...

  10. Luogu P2447 [SDOI2010]外星千足虫 高斯消元

    链接 给出的条件是异或类型的方程,可以直接用bitset优化高斯消元. 至于求K,在高斯消元时记录用到的最大的方程的编号即可. 代码: // luogu-judger-enable-o2 #inclu ...

随机推荐

  1. 用PHP实现同一个帐号不允许同时登陆,只允许一个帐号登录?

    数据库表 user_login_info 字段:id,user_ip,user_id,last_access_time user_id 做唯一性索引 1. 用户登录后 如果没有当前用户的数据,插入一条 ...

  2. 深入理解JavaScript系列(31):设计模式之代理模式

    介绍 代理,顾名思义就是帮助别人做事,GoF对代理模式的定义如下: 代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问. 代理模式使得代理对象控制具体对象的引用.代理几乎可以是任何对 ...

  3. WAMP环境配置-Mysql安装

    1.下载并解压MySQL5.6.36压缩包(顺便重命名一下子). 2.将my-default.ini文件复制一份改名为my.ini,然后修改下面红框标注的地方 3.安装与启动服务. 以管理员的身份运行 ...

  4. 在 Visual Studio 中调试 XAML 设计时异常

    在 Visual Studio 中进行 WPF, UWP, Silverlight 开发时,经常会遇到 XAML 设计器由于遭遇异常而无法正常显示设计器视图的情况.很多时候由于最终生成的项目在运行时并 ...

  5. JavaScript数组常用操作总结

    我们在日常开发过程中,使用到原生 JavaScript的时候,有时候会频繁的对数组进行操作,今天我把工作以来,经常用到的有关 JavaScript数组的方法总结一下,方便日后工作的时候查找使用! 一. ...

  6. (三)css之浮动&定位

    众所周知,一个页面可能包含多个div,如何对这些div进行排列,以便具有较好的显示效果呢? css提供了浮动和定位两个属性进行div的排列,下面主要针对浮动和定位进行详细地阐述. (一)何为浮动? 浮 ...

  7. JavaScirpt(JS)——js介绍及ECMAScript

    一.JavaScript历史发展 JavaScript语言的历史:http://javascript.ruanyifeng.com/introduction/history.html 1994年12月 ...

  8. scss-@for 指令

    此指令用于循环输出,具有两种循环方式,下面分别做一下介绍. (1).@for $var from <start> through <end>: 此种方式的遍历索引区间是[sta ...

  9. javascript统计一个字符在一段字符串出现次数

      <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8" ...

  10. maven项目的创建

    ·做了两年多Java Web一多半的项目都是SSM架构的,只搭建过两次,趁着周末做个总结整理. Eclipse搭建Maven项目 1.new project  --> Maven project ...