【BZOJ1923】[Sdoi2010]外星千足虫

Description

Input

第一行是两个正整数 N, M。 接下来 M行,按顺序给出 Charles 这M次使用“点足机”的统计结果。每行 包含一个“01”串和一个数字,用一个空格隔开。“01”串按位依次表示每只虫 子是否被放入机器:如果第 i 个字符是“0”则代表编号为 i 的虫子未被放入,“1” 则代表已被放入。后面跟的数字是统计的昆虫足数 mod 2 的结果。 由于 NASA的实验机器精确无误,保证前后数据不会自相矛盾。即给定数据 一定有解。

Output

在给定数据存在唯一解时有 N+1行,第一行输出一个不 超过M的正整数K,表明在第K 次统计结束后就可以确定唯一解;接下来 N 行 依次回答每只千足虫的身份,若是奇数条足则输出“?y7M#”(火星文),偶数 条足输出“Earth”。如果输入数据存在多解,输出“Cannot Determine”。 所有输出均不含引号,输出时请注意大小写。

Sample Input

3 5
011 1
110 1
101 0
111 1
010 1

Sample Output

4
Earth
?y7M#
Earth

HINT

对于 20%的数据,满足 N=M≤20; 
对于 40%的数据,满足 N=M≤500; 
对于 70%的数据,满足 N≤500,M≤1,000; 
对于 100%的数据,满足 N≤1,000,M≤2,000。 
==========================================================
请不要提交!

题解:请不要提交是什么鬼~

简洁的题意:一堆未知数,值为0或1,已知某些数的异或和,问至少在给出几个条件后能确定整个序列

高斯消元搞一搞~

#include <cstdio>
#include <iostream>
#include <bitset>
using namespace std;
int n,m,ans;
bitset<2010> v[2010];
char str[2010];
int main()
{scanf("%d%d",&n,&m);int i,j,k;for(i=1;i<=m;i++){scanf("%s",str+1);for(j=1;j<=n;j++) if(str[j]=='1') v[i][j]=1;scanf("%d",&k);v[i][n+1]=k;}k=0;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;
}

转载于:https://www.cnblogs.com/CQzhangyu/p/7044329.html

【BZOJ1923】[Sdoi2010]外星千足虫 高斯消元相关推荐

  1. bzoj1923 [Sdoi2010]外星千足虫 压位+高斯消元

    这个题手动压位非常麻烦,因为对于同一块,后加的数比先加的数小,所以判断最后一位的时候需要定位到最后一块最小的数,而且在找元的时候还不能找到这个位置 注意块的总数每个是30个不要存错, 码: #incl ...

  2. 线性代数五之高斯消元——[SDOI2010]外星千足虫,[HNOI2013]游走,[HNOI2011]XOR和路径,[hdu 4035]Maze

    多类型高斯消元杂题 [SDOI2010]外星千足虫 description solution code [HNOI2013]游走 description solution code [HNOI2011 ...

  3. P2447 [SDOI2010]外星千足虫

    P2447 [SDOI2010]外星千足虫 题意: 有n个未知数 给你一个m行n+1列的式子,对于每行,1到n列为这个n个未知数的系数,第n+1列为该行式子的和mod2,问n个未知数是否有唯一解,并输 ...

  4. BZOJ 1923: [Sdoi2010]外星千足虫

    1923: [Sdoi2010]外星千足虫 Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 921  Solved: 592 [Submit][Stat ...

  5. [SDOI2010]外星千足虫 题解 高斯消元+bitset简介

    高斯消元 + bitset 简介: 高斯消元其实就是以加减消元为核心求唯一解.这道题还是比较裸的,可以快速判断出来.我们将每一只虫子看作一个未知数,这样根据它给出的 m 组方程我们可以高斯消元得出每一 ...

  6. 【BZOJ1923】外星千足虫,高斯消元解xor方程组

    Time:2016.08.29 Author:xiaoyimi 转载注明出处谢谢 传送门 思路: 原本以为是高斯消元解取模方程,后来发现这题意不就和异或方程一样吗 [异或(XOR)运算由于与" ...

  7. [Luogu P2447] [BZOJ 1923] [SDOI2010]外星千足虫

    洛谷传送门 BZOJ传送门 航空航天局(NASA)研制发射,行经火星.金星.土卫六.木卫二.谷神星."张衡星"等232323颗太阳系星球,并最终在小行星"杰森星" ...

  8. 计算机编程 高斯消元,高斯-若尔当消元法

    高斯-若尔当消元法(英语:Gauss-Jordan Elimination),或译为高斯-约旦消元法,简称G-J消元法,是数学中的一个算法,是高斯消元法的另一个版本.它在线性代数中用来找出线性方程组的 ...

  9. 2020 ICPC 济南 A Matrix Equation (高斯消元)

    题目链接A-Matrix Equation 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(济南) 题目描述 We call a matrix "01 Square" i ...

  10. {算法}高斯消元不高斯

    高斯消元蛋白,由开挂数学家高斯命名.它可以在 O(n2) O(n^2)的时间内解出n元1次方程组. 功能这么强大,其实原理就是常用的"加减消元法". 首先,还是要将方程标准化,都( ...

最新文章

  1. 成为数据专家,你只差一个Quick Insights的距离
  2. 垂直margin合并问题
  3. [转].NET 数据库连接池
  4. ipad iphone开发_如何在iPhone或iPad上更改应用程序的语言
  5. 【lora无线数传通信模块】亿佰特E22串口模块用于物联网地震预警传感通信方案
  6. 单进程服务器-select版
  7. DVM的进程和Linux的进,下面关于Android dvm的进程和Linux的进程,应用程序的进程说法正确的是()...
  8. 直击标贝科技WAIC2019:深耕语音合成与数据服务 助力语音场景完美落地
  9. Linux系统下破解root用户密码
  10. php设计一个盒子类代码_PHP设计模式之备忘录模式(Memento)代码实例大全(25)...
  11. 命令 结构_关于Oracle常用查看表结构命令总结分享
  12. Python错误和异常
  13. 如何删除我的计算机里的搜索记录,计算机里搜索栏的历史记录怎么删除?
  14. MMQ broker(MQTT 分布式服务器)
  15. python基础练习之【求三角形周长和面积】
  16. 变量命名神器Codelf
  17. TJUCTF新生赛-AI安全专栏write up
  18. 【Webpack】1256- 硬核解析 Webpack 事件流核心!
  19. 世界首家《VOGUE》旗下婚纱店开业
  20. Java——【习题】java泛型练习题

热门文章

  1. python基础之列表、元组
  2. Centos7.x 装机优化
  3. 如何去掉ArrayList重复的id
  4. 实现Canvas2D绘图 使元素绕中心居中旋转
  5. Android开发入门的正确姿势,你get到了吗?
  6. Object-c 协议@protocol(@required、@optional)
  7. 海洋工作室成立啦!!
  8. Xcode 12 to build a single binary with both 32-bit and 64-bit support
  9. Go语言学习笔记(8)——包和结构体
  10. 数据挖掘十大算法-决策树的实现