题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1923

  懒得贴题目了......这就是解一个异或方程组的裸题......

  YY了一下异或方程就没毛病了!

  感受了一下bitset的力量噢噢噢!!!!!!

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. #include<cstdlib>
  5. #include<algorithm>
  6. #include<cmath>
  7. #include<queue>
  8. #include<set>
  9. #include<map>
  10. #include<vector>
  11. #include<cctype>
  12. #include<bitset>
  13. using namespace std;
  14. const int maxn=;
  15. const int maxm=;
  16.  
  17. int N,M;
  18. bool b[maxm],x[maxm];
  19. char s[maxn];
  20. bitset<maxn>a[maxm];
  21.  
  22. void data_in()
  23. {
  24. scanf("%d%d",&N,&M);
  25. for(int i=;i<=M;i++){
  26. scanf("%s",s+);
  27. for(int j=;j<=N;j++) a[i][j]=s[j]-'';
  28. scanf("%s",s+);
  29. b[i]=s[]-'';
  30. }
  31. }
  32. int Gauss()
  33. {
  34. int i=,j=,re=;
  35. while(i<=M&&j<=N){
  36. re=max(re,i);
  37. if(!a[i][j]){
  38. int tmp=;
  39. for(int r=i+;r<=M;r++)
  40. if(a[r][j]) { tmp=r; break; }
  41. if(!tmp) return ;
  42. re=max(re,tmp);
  43. swap(a[i],a[tmp]); swap(b[i],b[tmp]);
  44. }
  45. for(int r=i+;r<=M;r++){
  46. if(!a[r][j]) continue;
  47. a[r]^=a[i],b[r]^=b[i];
  48. }
  49. i++,j++;
  50. }
  51. if(j<=N) return ;
  52. for(int r=N;r>=;r--){
  53. x[r]=b[r];
  54. for(int rr=r-;rr>=;rr--)
  55. b[rr]^=*a[rr][r]*x[r];
  56. }
  57. return re;
  58. }
  59. void work()
  60. {
  61. int ans=;
  62. if(ans=Gauss()){
  63. printf("%d\n",ans);
  64. for(int i=;i<=N;i++)
  65. puts(x[i]?"?y7M#":"Earth");
  66. }
  67. else puts("Cannot Determine");
  68. }
  69. int main()
  70. {
  71. data_in();
  72. work();
  73. return ;
  74. }

BZOJ 1923 SDOI2010 外星千足虫 异或方程组+bitset的更多相关文章

  1. BZOJ 1923: [Sdoi2010]外星千足虫 高斯消元+bitset

    高斯消元求解异或方程组,可以多学一下 $bitset$ 在位运算中的各种神奇操作. #include <cstdio> #include <bitset> #define N ...

  2. BZOJ 1923: [Sdoi2010]外星千足虫 [高斯消元XOR]

    1923: [Sdoi2010]外星千足虫 对于 100%的数据,满足 N≤1,000,M≤2,000. 裸高斯消元解异或方程组 给定方程顺序要求用从上到下最少的方程,那么找主元时记录一下最远找到哪个 ...

  3. bzoj 1923 [Sdoi2010]外星千足虫(高斯消元+bitset)

    1923: [Sdoi2010]外星千足虫 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 634  Solved: 397[Submit][Status ...

  4. BZOJ.1923.[SDOI2010]外星千足虫(高斯消元 异或方程组 bitset)

    题目链接 m个方程,n个未知量,求解异或方程组. 复杂度比较高,需要借助bitset压位. 感觉自己以前写的(异或)高斯消元是假的..而且黄学长的写法都不需要回代. //1100kb 324ms #i ...

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

    Description 给出几个异或方程组求解,\(n \leqslant 2000\) Sol 高斯消元. 直接消元就行,遇到自由元就直接输出,同时记录一下用到的最高行数. 复杂度不科学就可以用 b ...

  6. bzoj 1923: [Sdoi2010]外星千足虫【高斯消元】

    裸的异或高斯消元 #include<iostream> #include<cstdio> using namespace std; const int N=2005; int ...

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

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

  8. 【BZOJ 1923】1923: [Sdoi2010]外星千足虫 (高斯消元异或 | BITSET用法)

    1923: [Sdoi2010]外星千足虫 Description Input 第一行是两个正整数 N, M. 接下来 M行,按顺序给出 Charles 这M次使用“点足机”的统计结果.每行 包含一个 ...

  9. 1923: [Sdoi2010]外星千足虫

    1923: [Sdoi2010]外星千足虫 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1254  Solved: 799[Submit][Statu ...

随机推荐

  1. js通过ua标识判断h5页面是否内嵌在app内

    var userAgent = navigator.userAgent.toLowerCase();//获取UA信息 if(userAgent.indexOf("ezhouxing" ...

  2. Oracle客户端与Toad、plsql developer安装

    (一)oracle client与oracle instant client比较 当我们要使用Toad.plsql developer等工具连接数据库时,首先需要在自己的电脑上安装oracle cli ...

  3. django+xadmin在线教育平台(十六)

    7-7 modelform 提交我要学习咨询1 对应表userask form会对字段先做验证,然后保存到数据库中. 可以看到我们的forms和我们的model中有很多内容是一样的.我们如何让代码重复 ...

  4. python运算符及优先级顺序

    python语言是一门脚本语言,支持面向对象.面向过程编程,兼具编译性和解释性的动态语言,整理出学习过程中一些基本Python运算符和运算符的优先级顺序. 一.算术运算符 运算符 描述 + 加 - 两 ...

  5. JS高级. 03 混入式继承/原型继承/经典继承、拓展内置对象、原型链、创建函数的方式、arguments、eval、静态成员、实例成员、instanceof/是否在同一个原型链

    继承:当前对象没有的属性和方法,别人有,拿来给自己用,就是继承 1 混入式继承 var I={ }; var obj = { name: 'jack', age:18, sayGoodbye : fu ...

  6. webpack3构建全面提速优化vue-cli

    前言 伴随着vue的全球化,各种vue的组件框架越来越完善,从早期的element-ui到vux,iview等越来越多高质量的项目,使用vue进行前端构建已然是一件工程化,模块化,敏捷化的事情 在这其 ...

  7. Angular : 响应式编程, 组件间通信, 表单

    Angular 响应式编程相关 ------------------------------------------------------------------------------------ ...

  8. 吐血分享:QQ群霸屏技术教程2017(效益篇)

    懂得如何做群排名了,接下来就要实质性的考虑产出了. 可能,咱们经常发现,一些群里拉人的,进群看某片,5元钱终生,这类是灰色的.其实正规的付费空间也很大. 群利润空间 有工作,有产品,有项目,可以做群排 ...

  9. linux系统编程之框架

    linux系统编程之框架: 1. 进程 1.1 进程概念 1.1.1 PCB 1.1.2 环境变量 1.2 进程控制 1.3 进程间通信 1.3.1 管道 1.3.2 有名管道 1.3.3 共享内存 ...

  10. 常用 css html 样式

    CSS基础必学列表 CSS width宽度 CSS height高度 CSS border边框 CSS background背景 CSS sprites背景拼合 CSS float浮动 CSS mar ...