高斯消元模板


void gs(int n){
    for(int i = 1;i <= n;i ++){
        if(!a[i][i]){
            int r = i;
            for(r = i + 1;r <= n; r ++) if(a[r][i]) break;
            for(int j = 1;j <= n + 1;j ++) swap(a[r][j],a[i][j]);
        }
        for(int k = i + 1;k <= n;k ++){
            for(int j = n + 1;j >=i ; j --){
                a[k][j] -= a[k][i] / a[i][i] * a[i][j];
            }
        }
    }
    for(int i = n;i >= 1;i --){
        for(int j = i + 1;j <= n;j ++){
            a[i][n+1] -= a[j][n+1] * a[i][j];
        }
        a[i][n+1] /= a[i][i];
    }
}


posted @ 2020-07-01 20:33  Lvlb2333  阅读(72)  评论(0编辑  收藏  举报