社区讨论
蒟蒻刚学OI,你猜是不是妹子,求助!
P2455[SDOI2006] 线性方程组参与者 5已保存回复 5
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @mi868jgq
- 此快照首次捕获于
- 2025/11/21 09:18 4 个月前
- 此快照最后确认于
- 2025/11/21 09:18 4 个月前
RT,高斯消元WA90,求大佬帮忙查错QAQ
CPP#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
struct data{
double f[101];
}t[101];
int n,q[101],cnt=0;
double eps=0.0000001;
int main(){
scanf("%d",&n);
for(int i=0;i<n;i++)for(int j=0;j<=n;j++)scanf("%lf",&t[i].f[j]);
for(int i=0;i<n;i++){
int p=i;
for(int j=i+1;j<n;j++)if(fabs(t[j].f[i])-fabs(t[p].f[i])>eps)p=j;
swap(t[p],t[i]);
if(fabs(t[i].f[i])<eps){
cnt++;
q[cnt]=i;
continue;
}
for(int j=i+1;j<=n;j++)t[i].f[j]/=t[i].f[i];
for(int j=0;j<n;j++)if(i!=j)for(int k=i+1;k<=n;k++)t[j].f[k]-=t[j].f[i]*t[i].f[k];
}
if(cnt==0){
for(int i=0;i<n;i++){
if(fabs(t[i].f[n])<eps)printf("x%d=0\n",i+1);
else printf("x%d=%.2lf\n",i+1,t[i].f[n]);
}
}else{
for(int i=1;i<cnt;i++){
if(fabs(t[q[i]].f[n])>eps){
printf("-1");
return 0;
}
}
printf("0");
return 0;
}
}
回复
共 5 条回复,欢迎继续交流。
正在加载回复...