poj 1222 高斯消元(改改模板)
2015-11-07 01:50
295 查看
先贴一下大牛博客里面的高斯消元专题 http://blog.csdn.net/qiqijianglu/article/details/7945197
然后这个题构造矩阵有点意思,比较有想法,构造出来就直接套模板了
View Code
然后这个题构造矩阵有点意思,比较有想法,构造出来就直接套模板了
#include <cstdio> #include <cstring> #include <iostream> #include <stack> #include <queue> #include <map> #include <algorithm> #include <vector> #include <cstdlib> #include <cmath> using namespace std; const int maxn = 1000005; typedef long long LL; int A[35][35]; int ans[35]; void gauss(int m,int n) //m个方程,n个变量 { int i,j,k,r,u; for(i=0,j=0;i<m&&j<n;j++){ //当前处理i个方程j个变量 r = i; for(k = i;k < m;k++){ if(A[k][j]){ r = k; break; } } if(A[r][j]){ for(k = 0;k <= n;k++) swap(A[r][k],A[i][k]); for(u = 0;u < m;u++){ if(u!=i && A[u][j]) for(k = i;k <= n;k++) A[u][k] ^= A[i][k]; } i++; } } for(int i=0;i<30;i++){ ans[i] = A[i][30]; } } int main() { int t; scanf("%d",&t); int cas = 0; while(t--){ cas++; memset(A,0,sizeof(A)); for(int i=0;i<30;i++){ scanf("%d",&A[i][30]); //ans[i] = 0; } int x,xx,y,yy; //构造矩阵 for(int i=0;i<30;i++){ x = i/6; y = i%6; for(int j=0;j<30;j++){ xx = j/6; yy = j%6; if((abs(x - xx)+abs(y - yy)) <= 1) A[i][j] = 1; else A[i][j] = 0; } } gauss(30,30); printf("PUZZLE #%d\n",cas); for(int i=0;i<30;i++){ printf("%d",ans[i]); if((i+1)%6==0) printf("\n"); else printf(" "); } } return 0; }
View Code
相关文章推荐
- 黑马程序员——类加载器——委托机制、自定义类加载器
- Ubuntu安装Anaconda3
- 夺命雷公狗ThinkPHP项目之----商城7后台登录控制以及注销
- 面向对象
- 大数模板
- Android使用.9图片失效的问题
- 集成支付宝、
- 10004---JavaWEB基础--HTTP,POST,GET
- mac 下svn 代码迁移到git
- Week2-5Spelling similarity:edit distance
- poj 1830 高斯消元
- PageAdapter不能刷新问题
- 【恒生电子16年校招编程题】求两有序数组的交集并返回交集个数
- 关于C#类中重写ToString方法和PHP类中__tostring()方法的比较
- 在Android studio中建立Java工程
- TSP问题
- 自动布局
- 将VS2012的项目转化为VS2010
- c++重载运算符注意
- Y400中通过easybcd在win7下面的安装Ubuntu14