poj 1222 EXTENDED LIGHTS OUT(高斯消元)
来源:互联网 发布:复旦大学香港大学知乎 编辑:程序博客网 时间:2024/06/07 00:31
题解:http://blog.csdn.net/shiren_Bod/article/details/5766907
这题直接枚举第一行可行,因为第一行确定了,下边就都确定了。
但是是来练习高斯消元的,表示并不会构造方程。题解中讲的比较详细,看了几遍看懂了,感觉线代白学了。。模板是kuangbin大佬的模板。每次计算时选取绝对值最大的那一行来消元,是因为这样计算出结果会更精确。书上写的,不知道为啥。虽然对这题来说没什么卵用。
#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;const int MAXN = 50;int g[MAXN][MAXN];int res[MAXN],equ,var;void init(){ memset(g,0,sizeof(g)); equ = var = 30; for(int i = 0; i < 5; ++i) { //每次构造一个列向量 for(int j = 0; j < 6; ++j) { int t = i*6+j; g[t][t] = 1; if(i > 0) g[(i-1)*6+j][t] = 1; if(i < 4) g[(i+1)*6+j][t] = 1; if(j > 0) g[i*6+j-1][t] = 1; if(j < 5) g[i*6+j+1][t] = 1; } }}void Gauss(){ int i,j,k,maxR,col,temp; for(k = 0,col = 0; k < equ && col < var; ++k,++col) { maxR = k; //找到行首绝对值最大的那一行 for(int i = k+1; i < equ; ++i) if(abs(g[i][col]) > abs(g[maxR][col])) maxR = i; if(maxR != k) for(j = col; j < var+1; ++j) swap(g[k][j], g[maxR][j]); //这是没有主元的列 if(g[k][col] == 0) { k--; continue; } //主元下方的元素全部边为0 for(i = k+1; i < equ; ++i) { if(g[i][col] != 0) { for(j = col; j < var+1; ++j) g[i][j] ^= g[k][j]; } } } //回带求解 for(i = var-1; i >= 0; --i) { res[i] = g[i][var]; for(j = i+1; j < var; ++j) res[i] ^= (g[i][j]&&res[j]); }}int main(){ int t,cnt = 0; scanf("%d",&t); while(t--) { init(); for(int i = 0; i < 30; ++i) scanf("%d",&g[i][30]); Gauss(); printf("PUZZLE #%d\n",++cnt); for(int i = 0; i < 30; ++i) { printf("%d ",res[i]); if((i+1)%6 == 0) puts(""); } } return 0;}
阅读全文
0 0
- poj 1222 EXTENDED LIGHTS OUT //高斯消元
- POJ 1222 EXTENDED LIGHTS OUT 枚举 || 高斯消元
- POJ 1222 EXTENDED LIGHTS OUT 高斯消元
- poj 1222 EXTENDED LIGHTS OUT 高斯消元
- poj 1222 EXTENDED LIGHTS OUT高斯消元。
- poj 1222 EXTENDED LIGHTS OUT(高斯消元)
- [高斯消元] poj 1222 EXTENDED LIGHTS OUT
- POJ 1222 EXTENDED LIGHTS OUT 高斯消元
- [POJ 1222]EXTENDED LIGHTS OUT(高斯消元)
- poj 1222 EXTENDED LIGHTS OUT(高斯消元)
- poj 1222 EXTENDED LIGHTS OUT(高斯消元)
- poj 1222 EXTENDED LIGHTS OUT (高斯消元)
- poj 1222 EXTENDED LIGHTS OUT (高斯消元)
- POJ-1222 EXTENDED LIGHTS OUT(高斯消元)
- poj 1222 EXTENDED LIGHTS OUT 【高斯消元】
- poj 1222 EXTENDED LIGHTS OUT (高斯消元)
- 【高斯消元】Poj 1222:EXTENDED LIGHTS OUT
- POJ 1222 EXTENDED LIGHTS OUT (高斯消元)
- Jmeter 用宏自动执行脚本的代码笔记
- IETF产生的文件
- 服务端cookie操作注意事项
- Spark基本工作原理与RDD
- Python值传递还是引用传递
- poj 1222 EXTENDED LIGHTS OUT(高斯消元)
- 【百日JavaScript系列】2017.11.2_函数 function
- 信息增益的理解
- javascript
- 反射reflect
- java获取公网ip地址操作
- 写入log事件
- 状态码的类别
- HTML5权威指南笔记:34-使用多媒体