炎炎龙虾 @ 2020-07-04 22:22:10
我也不知道为啥就被卡在了#4和#8
稻花香里说丰年,听取WA声一片
//
// Created by admin on 2020/7/4.
//
#include <bits/stdc++.h>
using namespace std;
double a[105][105],b[105];
int n;
bool jud(int i)
{
int c=0;
for(int j=1;j<=n;j++)
if(fabs(a[i][j])>1e-8)
return 1;
return 0;
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
cin>>a[i][j];
cin>>b[i];
}
for(int i=1;i<=n;i++)
{
for(int j=i;j<=n;j++)
if(fabs(a[j][i])>1e-8)
{
for(int k=1;k<=n;k++)
swap(a[i][k],a[j][k]);
swap(b[i],b[j]);
}
for(int j=1;j<=n;j++)
{
if(i==j)
continue;
double rate=a[j][i]/a[i][i];
for(int k=i;k<=n;k++)
a[j][k]-=a[i][k]*rate;
b[j]-=b[i]*rate;
}
}
for(int i=1;i<=n;i++)
if(jud(i)==0)
{
if(b[i]==0)
{
cout<<0<<endl;
return 0;
}
cout<<"-1"<<endl;
return 0;
}
for(int i=1;i<=n;i++)
printf("x%d=%.2f\n",i,b[i]/a[i][i]);
return 0;
}
有大佬能指点一下吗?
by kradcigam @ 2020-07-04 22:35:26
@炎炎龙虾 是WA还是TLE
by 炎炎龙虾 @ 2020-07-04 22:44:32
WA
by Semsue @ 2020-07-04 22:58:20
因为消元的顺序有可能对答案是0还是-1有影响
by Semsue @ 2020-07-04 22:59:25
比如这个hack数据:
2
0 2 3
0 0 0
by Semsue @ 2020-07-04 23:00:47
话说你这个判-1也不太对吧
by Semsue @ 2020-07-04 23:01:24
是所有都不是-1才有可能是0吧
by 炎炎龙虾 @ 2020-07-04 23:27:54
额,好吧,谢谢
我干脆直接换思路重写吧