WA#1,但是没wa(
查看原帖
WA#1,但是没wa(
1122611
stickman_stickmin楼主2024/5/3 17:01
//高斯消元
#include<bits/stdc++.h>
using namespace std;
const int N=1e4+10;
const int eps=1e-9;//允许误差范围
int n;
double a[N][N],ans[N];
    int gauss(){
        for(int i=1;i<=n;i++){
            int maxx=i;
        for(int j=i+1;j<=n;j++)
            if(fabs(a[j][i])>fabs(a[maxx][i]))
                maxx=j;
        for(int j=1;j<=n+1;j++)
            swap(a[i][j],a[maxx][j]);
        if(fabs(a[i][i])<eps)return -1;
        for(int j=1;j<=n;j++)
            if(j!=i){
                double tmp=a[j][i]/a[i][i];
                for(int k=i+1;k<=n+1;k++)
                    a[j][k]-=a[i][k]*tmp;
            }
        }
        for(int i=1;i<=n;i++)
            a[i][n+1]/=a[i][i];
        return 1;
    }

int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n+1;j++)
            cin>>a[i][j];
    }
    if(gauss()==-1){
        cout<<"No Solution";
        return 0;
    }
    for(int i=1;i<=n;i++){
        printf("%.2f",a[i][n+1]);cout<<'\n';
    }
    return 0;
}

下样例本地跑是“No Solution”,交上去就成了“found 0.00” 求dalao调

2024/5/3 17:01
加载中...