POJ 1222 高斯消元
来源:互联网 发布:概率矩阵分解 中心极限 编辑:程序博客网 时间:2024/05/21 10:19
解题思路:
30个格子,对每一个格子建立一个方程,高斯消元
#include <iostream>#include <cstring>#include <cstdlib>#include <cstdio>#include <cmath>#include <vector>#include <queue>#include <stack>#include <set>#include <map>#define LL lonA lonA#define FOR(i, x, y) for(int i=x;i<=y;i++)using namespace std;const int MAXN = 50;int A[MAXN][MAXN];int x[MAXN];void init(){ memset(A, 0, sizeof(A)); for(int i=0;i<5;i++) { for(int j=0;j<6;j++) { int p = 6 * i + j; A[p][p] = 1; if(i > 0) A[(i-1)*6+j][p] = 1; if(i < 4) A[(i+1)*6+j][p] = 1; if(j > 0) A[i*6+j-1][p] = 1; if(j < 5) A[i*6+j+1][p] = 1; } }}void Gauss(){ int k; int row, col; for (row =0, col =0; row <30&& col <30; row++, col++) { for (k = row; k <30; k++) if (A[k][col] !=0) break; if (k ==30) { row--; continue; } if (k != row) for (int i = col; i <=30; i++) swap(A[row][i], A[k][i]); for (int i = row +1; i <30; i++) if (A[i][col]) for (int j = col; j <=30; j++) A[i][j] ^= A[row][j]; } for (int i = row; i >=0; i--) { x[i] = A[i][30]; for (int j =29; j > i; j--) x[i] ^= (A[i][j] && x[j]); }}int main(){ int T, kcase = 1; scanf("%d", &T); while(T--) { init(); for(int i=0;i<30;i++) scanf("%d", &A[i][30]); Gauss(); printf("PUZZLE #%d\n", kcase++); for(int i=0;i<30;i++) { if((i + 1) % 6 == 0) printf("%d\n", x[i]); else printf("%d ", x[i]); } } return 0;}
0 0
- poj 1222 (高斯消元)
- POJ 1222 高斯消元
- poj 1222 高斯消元
- poj 1222 高斯消元详解
- 【高斯消元】poj 1222
- poj 1222 高斯消元
- Poj 1222 高斯消元
- POJ 1222 高斯消元
- poj-1222 高斯消元
- poj 1222 高斯消元
- poj 1222(高斯消元)
- 高斯消元 POJ 1830 1222 1753
- poj 1222 poj 1830高斯消元解决开关问题
- poj 1222
- POJ 1222
- POJ 1222
- poj 1222
- 【POJ】1222
- c语言杭电1029Ignatius and the Princess IV
- dpkg
- 开发工具
- 应用程序相关工具AppUtils
- Android menu学习----来自好友王阳
- POJ 1222 高斯消元
- matlab摄像机标定内参
- 第三周项目3-程序的多文件组织
- java学习---------IO流学习---文件流inputstream outputstream
- (素材源码)猫猫学IOS(十四)UI之UITableView扩充_表格的修改_(增删移动)
- 和异步网络相关的工具类HttpUtils
- Android 应用自动安装(无需提示静默安装)
- 关于ScrollView不能滑动了
- Oracle 中的复合索引谁放在第一列上。