1923: [Sdoi2010]外星千足虫
1923: [Sdoi2010]外星千足虫
Time Limit: 10 Sec Memory Limit: 64 MB
Submit: 1254 Solved: 799
[Submit][Status][Discuss]
Description
Input
接下来 M行,按顺序给出 Charles 这M次使用“点足机”的统计结果。每行
包含一个“01”串和一个数字,用一个空格隔开。“01”串按位依次表示每只虫
子是否被放入机器:如果第 i 个字符是“0”则代表编号为 i 的虫子未被放入,“1”
则代表已被放入。后面跟的数字是统计的昆虫足数 mod 2 的结果。
由于 NASA的实验机器精确无误,保证前后数据不会自相矛盾。即给定数据
一定有解。
Output
超过M的正整数K,表明在第K 次统计结束后就可以确定唯一解;接下来 N 行
依次回答每只千足虫的身份,若是奇数条足则输出“?y7M#”(火星文),偶数
条足输出“Earth”。如果输入数据存在多解,输出“Cannot Determine”。
所有输出均不含引号,输出时请注意大小写。
Sample Input
011 1
110 1
101 0
111 1
010 1
Sample Output
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。
==========================================================
请不要提交!
#include <bits/stdc++.h> #define MAXN 1005
#define MAXM 2005 using namespace std; int n,m;
char str[MAXN];
int x[MAXN];//结果
int rl;
int a[MAXM][MAXN];//高斯消元矩阵
int ans; int gauss(int equ,int var){
int i,j,k;
int max_r;
int col;
for(int i=;i<=var;i++){
x[i]=;
}
col=;
for(k = ;k < equ && col < var;k++,col++) { //k是行,col是列
max_r=k;
while(a[max_r][col]==&&max_r<equ) max_r++;
if(max_r==equ)
return -;
swap(a[k],a[max_r]);
ans=max(ans,max_r+);
for(i=k+;i<equ;i++){
if(a[i][col]!=){
for(j=;j<var+;j++){
a[i][j] = a[i][j]^a[k][j];
}
}
}
}
// 一个解
for (i = var - ; i >= ; i--){
x[i]=a[i][var];
for (j = i + ; j < var; j++){
x[i]^=(a[i][j]&&x[j]);
}
}
return ;
} inline void init(){
memset(a,,sizeof a);
ans=;
} int main(){
//freopen("in.txt","r",stdin);
init();
scanf("%d%d",&n,&m);
for(int i=;i<m;i++){
scanf("%s%d",str,&rl);
for(int j=;j<n;j++){
a[i][j]=str[j]-'';
}
a[i][n]=rl;
}
int res=gauss(m,n);
if(res==-){
puts("Cannot Determine");
}else{
printf("%d\n",ans);
for(int i=;i<n;i++){
if(x[i]==)
puts("Earth");
else
puts("?y7M#");
}
}
return ;
}
1923: [Sdoi2010]外星千足虫的更多相关文章
- bzoj 1923 [Sdoi2010]外星千足虫(高斯消元+bitset)
1923: [Sdoi2010]外星千足虫 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 634 Solved: 397[Submit][Status ...
- BZOJ 1923: [Sdoi2010]外星千足虫 [高斯消元XOR]
1923: [Sdoi2010]外星千足虫 对于 100%的数据,满足 N≤1,000,M≤2,000. 裸高斯消元解异或方程组 给定方程顺序要求用从上到下最少的方程,那么找主元时记录一下最远找到哪个 ...
- 【BZOJ 1923】1923: [Sdoi2010]外星千足虫 (高斯消元异或 | BITSET用法)
1923: [Sdoi2010]外星千足虫 Description Input 第一行是两个正整数 N, M. 接下来 M行,按顺序给出 Charles 这M次使用“点足机”的统计结果.每行 包含一个 ...
- BZOJ 1923: [Sdoi2010]外星千足虫
Description 给出几个异或方程组求解,\(n \leqslant 2000\) Sol 高斯消元. 直接消元就行,遇到自由元就直接输出,同时记录一下用到的最高行数. 复杂度不科学就可以用 b ...
- BZOJ 1923 SDOI2010 外星千足虫 异或方程组+bitset
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1923 懒得贴题目了......这就是解一个异或方程组的裸题...... YY了一下异或方程 ...
- BZOJ.1923.[SDOI2010]外星千足虫(高斯消元 异或方程组 bitset)
题目链接 m个方程,n个未知量,求解异或方程组. 复杂度比较高,需要借助bitset压位. 感觉自己以前写的(异或)高斯消元是假的..而且黄学长的写法都不需要回代. //1100kb 324ms #i ...
- 【BZOJ】1923 [Sdoi2010]外星千足虫(高斯消元)
题目 传送门:QWQ 分析 高斯消元解异或方程组,和解普通方程组差不多. 范围有点大,要套一个bitset. 代码 #include <bits/stdc++.h> using names ...
- bzoj 1923: [Sdoi2010]外星千足虫【高斯消元】
裸的异或高斯消元 #include<iostream> #include<cstdio> using namespace std; const int N=2005; int ...
- BZOJ 1923: [Sdoi2010]外星千足虫 高斯消元+bitset
高斯消元求解异或方程组,可以多学一下 $bitset$ 在位运算中的各种神奇操作. #include <cstdio> #include <bitset> #define N ...
随机推荐
- CF 314 E. Sereja and Squares
E. Sereja and Squares http://codeforces.com/contest/314/problem/E 题意: 给你一个擦去了部分左括号和全部右括号的括号序列,括号有25种 ...
- Qt-QML-Slider-滑块-Style-后继
首先了,先把我上篇文章的demo准备好,不过我上次写的被我删除了,这次就重新写了一个,上代码 import QtQuick 2.5 import QtQuick.Controls 1.4 import ...
- CentOS 7.2 安装zabbix 3.4
一.zabbix版本选择及部署环境说明 1.zabbix版本选择 zabbix官网地址:www.zabbix.com zabbix每半年发布一个长期支持版,目前长期支持版有2.0.3.0等,所以选择z ...
- PAT - L2-001. 紧急救援( Dijstra )
- PAT - L2-001. 紧急救援 题目链接 作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图.在地图上显示有多个分散的城市和一些连接城市的快速道路.每个城市的救援队数量和每一条连接两 ...
- NO.01---今天聊聊Vuex的简单入门
作为一款个人认为非常牛x的框架,个人使用起来得心应手,所以近期就记录一下这款框架吧. 首先说一说 Vuex 是什么? 官方给出的解释:Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它 ...
- Java VisualVM使用
Java VisualVM Java VisualVM官网 Java VisualVM介绍 Java VisualVM is a tool that provides a visual interfa ...
- 使用Python客户端(redis-py)连接Redis--华为云DCS for Redis使用经验
使用Python连接Redis,需要先安装Python以及redis-py,以CentOS为例,介绍redis-py的客户端环境搭建. 第0步:准备工作 华为云上购买1台弹性云服务器ECS(我选了Ce ...
- Python最长连续数列的O(n)解法
题目 输入一个乱序的连续数列,输出其中最长连续数列长度,要求算法复杂度为 O(n) . 输入样例 100,4,200,1,3,2 54,55,300,12 1 5,4,3,2,1 1,2,3,4,5, ...
- Simple Pipelined Function
SELECT * FROM TABLE(PKG_TEST.FN_DIC_DB_TAB) CREATE OR REPLACE PACKAGE PKG_TEST IS TYPE OBJ_DICDB_R ...
- net::ERR_ABORTED ,引入js文件出现报错的解决方法
在head头里面添加 <mvc:annotation-driven enable-matrix-variables="true"></mvc:annotation ...