uva509 RAID
来源:互联网 发布:html商城模板源码 编辑:程序博客网 时间:2024/06/10 23:05
1.#include <bits /stdc++.h>
包含了目前c++所包含的所有头文件
2. b = 1时也有校验码
3. 没有使用多少位运算。。。
// uva509.cpp#include <stdio.h>#include <string.h>#define DISKS 8#define SIZE 80#define BLOCKS 120struct dis { int block[BLOCKS][SIZE];} disk[DISKS];int main(){ int d, s, b, kase = 0; int state; while (scanf("%d%d%d", &d, &s, &b) != EOF && d != 0){ kase++; char c; getchar(); scanf("%c", &c); getchar(); state = (c == 'E') ? 0 : 1; // 0 for even // printf("d = %d s = %d b = %d state = %d\n", d, s, b, state); for (int pd = 0; pd < d; pd++){ for (int pb = 0; pb < b; pb++){ for (int ps = 0; ps < s; ps++){ c = getchar(); if (c == 'x') disk[pd].block[pb][ps] = -1; // -1 for corrupted data else disk[pd].block[pb][ps] = c - '0'; } } getchar(); } bool valid = true; for (int pb = 0; pb < b; pb++) { for (int ps = 0; ps < s; ps++){ int tot = 0, recover = 0, px; for (int pd = 0; pd < d; pd++){ if (disk[pd].block[pb][ps] == -1) {tot++; px = pd;} else recover = recover ^ disk[pd].block[pb][ps]; } if (tot == 0 && recover != state || tot > 1) { valid = false; break; } if (tot == 1) disk[px].block[pb][ps] = (state == 0) ? recover : 1 ^ recover; } if (!valid) break; } int i = 0, tot = 0; if (valid) printf("Disk set %d is valid, contents are: ", kase); else printf("Disk set %d is invalid.", kase); if (valid) for (int pb = 0; pb < b; pb++){ for (int pd = 0; pd < d; pd++){ if (pb % d == pd) continue; for (int ps = 0; ps < s; ps++){ if (i < 4) { tot = tot * 2 + disk[pd].block[pb][ps]; i++; } if (i == 4) { printf("%X", tot); i = 0; tot = 0; } } } } if (i == 0) printf("\n"); else { for (int j = 0; j < 4 - i; j++) tot *= 2; printf("%X\n", tot); } } return 0;}
阅读全文
0 0
- UVa509 - RAID!
- uva509 RAID
- 习题4-7 RAID技术 UVa509
- 算法竞赛入门经典(第2版)习题4-7 RAID技术 RAID! UVa509
- [刷题]算法竞赛入门经典(第2版) 4-7/UVa509 - RAID!
- RAID
- RAID
- RAID
- raid
- RAID
- RAID
- RAID
- RAID
- RAID
- RAID
- raid
- RAID
- RAID
- final关键字 多态 抽象 作业
- java总结2
- SVN使用教程
- UOJ #82 [UR #7] 水题生成器
- 优雅的让Fragment整合到ViewPager中
- uva509 RAID
- hdu 1728 逃离迷宫
- hdu 5823(状压DP)
- 音乐播放器
- python中文字符截取乱码
- Android Git 笔记
- Android实现可左右滑动的选择控件
- java导出jar包以及jar内程序读取jar包外配置文件
- Win7下安装Python和Python IDLE