题目链接

中文题,高斯消元模板题。

#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>
#include <queue>
#include <vector>
#include <map>
#include <ctime>
using namespace std;
typedef long long in;
const int maxn=300;
//有equ个方程,var个变元。增广矩阵行数为equ,列数为var+1,分别为0到var
in equ,var;
in a[maxn][maxn]; //增广矩阵
in x[maxn]; //解集
in free_x[maxn];//用来存储自由变元(多解枚举自由变元可以使用)
in free_num;//自由变元的个数
//返回值为-1表示无解,为0是唯一解,否则返回自由变元个数
in gcd(in a,in b)
{return b==0?a:gcd(b,a%b);
}
in lcm(in a,in b)
{return a/gcd(a,b)*b;
}
in gauss()
{in max_r,col,k;free_num=0;for(k=0,col=0; k<equ&&col<var; k++,col++){max_r=k;for(in i=k+1; i<equ; i++)if(abs(a[i][col])>abs(a[max_r][col]))max_r=i;if(!a[max_r][col]){k--;free_x[free_num++]=col;continue;}if(max_r!=k)for(in j=col; j<var+1; j++)swap(a[k][j],a[max_r][j]);/*for(int i=k+1;i<equ;i++){if(a[i][col]){for(int j=col;j<var+1;j++)a[i][j]^=a[k][j];}}*/for(in i=k+1; i<equ; ++i){if(a[i][col] != 0){in LCM=lcm(abs(a[i][col]),abs(a[k][col]));in ta=LCM/abs(a[i][col]),tb=LCM/abs(a[k][col]);if(a[i][col]*a[k][col] < 0)tb=-tb;for(in j=col; j<var+1; ++j)a[i][j]=a[i][j]*ta-a[k][j]*tb;}}}for(in i=k; i<equ; i++)if(a[i][col])return -1;if(k<var) return var-k;for(in i=k-1; i>=0; --i){in tmp=a[i][var];for(in j=i+1; j<var; ++j)if(a[i][j]!=0)tmp=tmp-(a[i][j]*x[j]);x[i]=tmp/a[i][i];}/*for(int i=var-1;i>=0;i--){x[i]=a[i][var];for(int j=i+1;j<var;j++)x[i]^=(a[i][j]&&x[j]);}*/return 0;
}
in n;
void init()
{memset(a,0,sizeof(a));memset(x,0,sizeof(x));equ=n;var=n;
}
void solve()
{in t=gauss();if(t==-1){puts("no sovle!");}else if(t==0){for(int i=0; i<n-1; i++)printf("%d ",x[i]);printf("%d\n",x[n-1]);}else{puts("more sovle!");}
}
int main()
{while(scanf("%lld",&n)!=EOF){init();for(int i=0; i<n; i++)for(int j=0; j<n; j++)scanf("%lld",&a[i][j]);for(int i=0; i<n; i++)scanf("%lld",&a[i][n]);solve();}return 0;
}

转载于:https://www.cnblogs.com/Ritchie/p/5865872.html

NEFU 503 矩阵求解 (非01异或的高斯消元)相关推荐

  1. 计算矩阵的逆和行列式的值(高斯消元+LU分解)

    计算矩阵的逆 选主元的高斯消元法 朴素的高斯消元法是将矩阵A和单位矩阵放在一起,通过行操作(或者列操作)将A变为单位矩阵,这个时候单位矩阵就是矩阵A的逆矩阵.从上到下将A变为上三角矩阵的复杂度为O(n ...

  2. 矩阵与高斯消元【矩阵乘法,高斯消元求线性方程组,求行列式】 全网最详,附例题与姊妹篇 一万三千字详解

    (详解)矩阵快速幂详解与常见转移矩阵的构造_秦小咩的博客-CSDN博客_矩阵快速幂转移矩阵 目录 矩阵乘法 矩阵快速幂 伪代码模板 例题一 例题2 例题三 例题四 高斯消元 整形高斯消元 浮点型高斯消 ...

  3. POJ 1830 开关问题 【01矩阵 高斯消元】

    任意门:http://poj.org/problem?id=1830 开关问题 Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 1 ...

  4. 矩阵树 Matrix-Tree 定理实现模板(高斯消元求解行列式)

    大佬1博客:https://www.cnblogs.com/zj75211/p/8039443.html 大佬2博客:https://www.cnblogs.com/yangsongyi/p/1069 ...

  5. 【BZOJ3503】【Cqoi2014】和谐矩阵 高斯消元,解异或方程组

    #include <stdio.h> int main() {puts("转载请注明出处");puts("地址:blog.csdn.net/vmurder/a ...

  6. POJ 1222 1681 1830 3185 开关灯问题 (高斯消元 异或方程组)

    POJ 1222 EXTENDED LIGHTS OUT 基本的开关灯问题.还保证唯一解. 我们把每一个灯泡当成一个状态xi,总共有30个,而且每个灯与其他灯的关系也很明显.所以我们就可以列30方程3 ...

  7. c++用类实现高斯消元法求解线性方程组的解_高斯消元

    高斯消元 众所周知,高斯消元是线性代数中重要的一课.通过矩阵来解线性方程组.高斯消元最大的用途就是用来解多元一次方程组. 前置技能 1.线性方程组 线性方程组是各个方程关于未知量均为一次的方程组(例如 ...

  8. CF446D-DZY Loves Games【高斯消元,矩阵乘法】

    正题 题目链接:https://www.luogu.com.cn/problem/CF446D 题目大意 给出nnn个点mmm条边的一张无向图,一些点有陷阱,走到时会损失一条生命,总共有kkk条生命, ...

  9. 高斯消元(二)——竞赛题目中异或和的高斯消元

    然而算法竞赛并不会考到简单的加减消元,它回很隐晦的让你明白,高斯消元还有另外一种用途,那就是解异或方程组. 异或,C++中符号为'^'或关键字"xor",它的逆运算为它本身,可以看 ...

最新文章

  1. [CF816B] Karen and Coffee(前缀和,思维)
  2. centos7 安装无线工具包wireless-tools 包含 iwlist,iwconfig命令
  3. docker——kafka-manager安装
  4. tracepro应用实例详解_离心铸造工艺(实例)
  5. android 字符串反转,Golang之字符串操作(反转中英文字符串)
  6. 萌宠历险记html5游戏在线玩,《神武2》天外魔境现世 萌宠历险记首发
  7. python设计---空域增强之图片去噪(中值滤波、均值滤波、高斯滤波、双边滤波)
  8. VC++常见错误原因解析之error LNK2019: 无法解析的外部符号 public: void __thiscall
  9. OpenStack OVSGRE/VXLAN网络
  10. 生成解析器:Fsyacc
  11. 基于遗传算法车辆路径问题(VRP)
  12. PMSM FOC控制 Matlab/Simulink仿真之反Clark变换
  13. mis服务器系统,MIS系统中服务器推技术的实现
  14. 计算机专业对环境保护,计算机与环境保护
  15. 苹果怎么用微信链接服务器,苹果手机如何设置微信登陆锁
  16. 微信程序开发系列教程(四)使用微信API创建公众号自定义菜单
  17. POSCMS 网站设置
  18. 硬件工程师常用的电路基础公式+换算!
  19. 踩坑日志1----从zuulFilter到Filter
  20. 记录第一次完整安卓逆向过程笔记

热门文章

  1. ArcGIS JS先添加动态图层,再添加切片图层后不显示
  2. 【手写系列】写一个迷你版的Tomcat
  3. 数据库:悲观锁与乐观锁
  4. 【Scratch】青少年蓝桥杯_每日一题_3.23_骰子
  5. 在servlet中设置的字符编码集为什么还会出现乱码(亲测)
  6. Java 洛谷 P1909 买铅笔讲解
  7. 用hql查询的数据排序每次都不一样
  8. Oracle大象,大象工程(石头剪刀布PK游戏)
  9. 2022年改变数据中心行业的八大趋势
  10. 数据中心可以从云计算学习可持续性运营