2022春每日一题:Day 12
2024-10-20 08:41:16
题目:[SDOI2006]线性方程组
显然,高斯消元模板题
代码:
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <cmath>
#define N 105
#define eps 1e-6
using namespace std;
int n;
double a[N][N];
int guass()
{
int r=0;
for(int c=0;c<n;c++)
{
int t=r;
for(int i=r;i<n;i++)
if(fabs(a[i][c])>fabs(a[t][c]))
t=i;
if(fabs(a[t][c])<eps)
continue;
for(int i=c;i<=n;i++)
swap(a[t][i],a[r][i]);
for(int i=n;i>=c;i--)
a[r][i]/=a[r][c];
for(int i=r+1;i<n;i++)
if(fabs(a[i][c])>eps)
for(int j=n;j>=c;j--)
a[i][j]-=a[r][j]*a[i][c];
++r;
}
if(r<n)
{
for(int i=r;i<n;i++)
if(fabs(a[i][n])>eps)
return 2;
return 1;
}
for(int i=n-1;i>=0;i--)
for(int j=i+1;j<n;j++)
a[i][n]-=a[i][j]*a[j][n];
return 0;
}
int main()
{
scanf("%d",&n);
for(int i=0;i<n;i++)
for(int j=0;j<=n;j++)
scanf("%lf",&a[i][j]);
int t=guass();
if(!t)
{
for(int i=0;i<n;i++)
{
if(fabs(a[i][n])<eps)
a[i][n]=fabs(a[i][n]);
printf("x%d=%.2lf\n",i+1,a[i][n]);
}
}
else if(t==1)
puts("0");
else
puts("-1");
return 0;
}
最新文章
- 软件工程里的UML序列图的概念和总结
- CocoaPods的那些坑
- 对点餐APP现阶段开发的问题
- js点击空白处弹窗消失
- MaskEdit 使用方法
- 知方可补不足~SQL2008中的发布与订阅模式~续
- app接口的简单案例 和一些总结
- 【设计模式】策略模式 (Strategy Pattern)
- spring applicationContext.xml 文件
- GIMP也疯狂之动态图的制作(一)
- JDK8安装时错误1335的解决
- Android远程桌面助手之功能简介
- ISP PIPLINE (附加1) Green Imbalance
- Map、List、Set在Java中的各种遍历方法
- 浏览器渲染页面的时候,不同的script块之间的关系
- LeetCode:104_Maximum Depth of Binary Tree | 二叉树的最大深度 | Easy
- 第三个Sprint ------第六天
- 【转】Python之日期与时间处理模块(date和datetime)
- C++类型检查
- regular exception