【链接】 我是链接,点我呀:)

【题意】

在这里输入题意

【题解】

如果一行里面某位有>1个x
那么是invalid的。
没有x的话。
可以分析以下(设输入的标准Even为0,然后Odd为1)
(列出所有情况分析后会发现.)
那么必须满足标准^这一列该位的亦或和==0
x只有1个的情况的话。也应该满足这个,所以就能根据上面这个求出x是啥啦。
末尾添加0
是添加(4-len%4)个...不是len%4个。。
(如果len%4!=0的话)

【代码】

#include <bits/stdc++.h>
#define rep1(i,a,b) for (int i = a;i <= b;i++)
#define rep2(i,a,b) for (int i = a;i >= b;i--)
using namespace std; const int N = 1e2; int m,ss,n;
string a[N+10][N+10];
char ju[3];
int _ju; string check(){
vector<int> v;v.resize(m);
rep1(i,1,n)
rep1(p,0,ss-1){
int _xor = 0;
rep1(j,1,m){
if (a[i][j][p]=='x'){
v[j-1] = -1;
}else{
v[j-1]=a[i][j][p]-'0';
_xor ^= v[j-1];
}
}
int idx = -1,cnt = 0;
rep1(j,1,m)
if (v[j-1]==-1){
idx = j;
cnt++;
}
if (cnt>1) return " is invalid.";
if (cnt==0){
//假设其他东西的亦或值为x
//验证为的值为a
//如果ju[0]=='E' 当成0
//那么x为偶数的话,a的值要为0
//如果x为奇数的话,a的值要为1 //如果ju[0]=='O' 当成1
//那么x为偶数的话,a的值要为1
//如果x为奇数的话,a的值要为0
//所以只要看看所有东西的亦或值^ju[0]==0(Even为0,Odd为1)的话
//就是合法的
//所以那个Parity在这一行的哪里都没关系,不用知道在哪里.
if (_xor^_ju!=0) return " is invalid.";
//如果运行到这,说明这一行的第p位是ok的
}else{
//把对应的位置改成__xor^ju就ok了。
//这样xorall^ju就为0了
a[i][idx][p]=_xor^_ju+'0';
} }
string temp = "";
int idx = 1;
//cout<<endl;
rep1(i,1,n){
rep1(j,1,m){
if (j!=idx){
temp = temp + a[i][j];
}
//cout<<a[i][j]<<" ";
}
//cout<<endl;
idx++;
if (idx>m) idx = 1;
}
int len = temp.size();
if (len%4!=0){
rep1(i,1,4-len%4) temp+="0";
}
len = temp.size();
string ans = " is valid, contents are: ";
int hex=0;
//cout<<temp<<endl;
rep1(i,1,len){
hex=hex*2+temp[i-1]-'0';
if (i%4==0){
//cout<<hex<<" ";
if (hex<=9){
char key = hex+'0';
ans = ans+(char)(hex+'0');
}else{
char key = hex-10+'A';
ans = ans+key;
}
hex = 0;
}
}
return ans;
} int main(){
//freopen("/home/ccy/rush.txt","r",stdin);
//freopen("/home/ccy/rush_out.txt","w",stdout);
ios::sync_with_stdio(0),cin.tie(0);
int kase = 0;
while (cin >> m){
if (m==0) break;
cin >> ss >> n;
cin >> ju;
if (ju[0]=='E') _ju = 0;else _ju = 1;
rep1(i,1,m){
//第i个硬盘.
string s;cin >> s;
string temp="";
for (int j = 1,idx = 1;j <= n;idx++){
temp+=s[idx-1];
if (idx%ss==0){
a[j][i] = temp;
temp = "";
j++;
}
}
}
cout<<"Disk set "<<++kase<<check()<<endl;
}
return 0;
}

【习题 4-7 UVA - 509】RAID!的更多相关文章

  1. uva 509 RAID!(磁盘数据)

    来自 https://blog.csdn.net/su_cicada/article/details/80085318 习题4-7 RAID技术(RAID!, ACM/ICPC World Final ...

  2. UVA 509 RAID!

    思路来自:https://blog.csdn.net/wcr1996/article/details/43834545 先解释一下题意: ①输入:先输入d(disk的数量)  s(每块数据块有s个bi ...

  3. 位运算基础(Uva 1590,Uva 509题解)

    逻辑运算 规则 符号 与 只有1 and 1 = 1,其他均为0 & 或 只有0 or 0 = 0,其他均为1 | 非 也就是取反 ~ 异或 相异为1相同为0 ^ 同或 相同为1相异为0,c中 ...

  4. ACM训练计划建议(写给本校acmer,欢迎围观和指正)

    ACM训练计划建议 From:freecode#  Date:2015/5/20 前言: 老师要我们整理一份训练计划给下一届的学弟学妹们,整理出来了,费了不少笔墨,就也将它放到博客园上供大家参考. 菜 ...

  5. ACM训练计划建议(转)

    ACM训练计划建议 From:freecode#  Date:2015/5/20 前言: 老师要我们整理一份训练计划给下一届的学弟学妹们,整理出来了,费了不少笔墨,就也将它放到博客园上供大家参考. 菜 ...

  6. 动态规划 Dynamic Programming 学习笔记

    文章以 CC-BY-SA 方式共享,此说明高于本站内其他说明. 本文尚未完工,但内容足够丰富,故提前发布. 内容包含大量 \(\LaTeX\) 公式,渲染可能需要一些时间,请耐心等待渲染(约 5s). ...

  7. UVa第五章STL应用 习题((解题报告))具体!

    例题5--9 数据库 Database UVa 1592 #include<iostream> #include<stdio.h> #include<string.h&g ...

  8. UVa 1600 Patrol Robot (习题 6-5)

    传送门: https://uva.onlinejudge.org/external/16/1600.pdf 多状态广搜 网上题解: 给vis数组再加一维状态,表示当前还剩下的能够穿越的墙的次数,每次碰 ...

  9. UVa 536 Tree Recovery | GOJ 1077 Post-order (习题 6-3)

    传送门1: https://uva.onlinejudge.org/external/5/536.pdf 传送门2: http://acm.gdufe.edu.cn/Problem/read/id/1 ...

随机推荐

  1. 加州理工学院公开课:机器学习与数据挖掘_Regularization(第十二课)

    课程简单介绍: 接上一节课,这一节课的主题是怎样利用 Regularization 避免 Overfitting.通过给如果集设定一些限制条件从而避免  Overfitting,可是如果限制条件设置的 ...

  2. B1202 [HNOI2005]狡猾的商人 并查集

    其实就是并查集的题.维护一个前缀和,然后用并查集维护前缀和,每次判断是否合理就行了. 题干: Description 刁姹接到一个任务,为税务部门调查一位商人的账本,看看账本是不是伪造的.账本上记录了 ...

  3. 洛谷 P3515 [ POI 2011 ] Lightning Conductor —— 决策单调性DP

    题目:https://www.luogu.org/problemnew/show/P3515 决策单调性... 参考TJ:https://www.cnblogs.com/CQzhangyu/p/725 ...

  4. gdb 断点调试C程序

    最近在看CS50的公开课,视频中david用gdb调试C,我跟着敲,一样的代码但是却显示效果与他不一样.因为他的程序是编译好了的,所以也没看到编译步骤,后来回想一下他make 文件名 显示的代码中有一 ...

  5. Java-java-com-util-common-service:ServiceException.java

    ylbtech-Java-java-com-util-common-service:ServiceException.java 1.返回顶部 1. package com.shineyoo.manag ...

  6. Network Saboteur(dfs)

    http://poj.org/problem?id=2531 不太理解这个代码... #include <stdio.h> #include <string.h> ][],v[ ...

  7. preg_match_all匹配网络上文件

    <?php$ssa=file_get_contents("http://www.oschina.net/code/snippet_4873_5256");preg_match ...

  8. 原生JS---4

    原生js学习笔记4——BOM操作 什么是DOM DOM:Do 1. js的组成部分 2. 一套标准,目前有DOM1和DOM2这两种标准 我们可以使用DOM操作来操作页面中的元素. DOM节点 子节点 ...

  9. 浅谈自学Python之路(day1)

    2018-02-19  17:15:14 Python语言相对于其他语言较为简洁,也相对好入门比如后面不加分号,基本见不着大括号等优点 第一个程序,也是学每门语言都需要掌握的第一个代码 print(& ...

  10. springboot+webmagic实现java爬虫jdbc及mysql

    前段时间需要爬取网页上的信息,自己对于爬虫没有任何了解,就了解了一下webmagic,写了个简单的爬虫. 一.首先介绍一下webmagic: webmagic采用完全模块化的设计,功能覆盖整个爬虫的生 ...