题目: http://uva.onlinejudge.org/external/128/12849.pdf
#include <bits/stdc++.h> using namespace std; typedef long long LL ; typedef unsigned long long ULL ; typedef pair<int,int> pii; #define X first #define Y second const int N = 5 ; const int mod = 1e9+7 ; const double K = 100000; double A[N][N] ; void solve( int n ) { int i , k , j , r ; for( i = 0 ; i < n ; ++i ) { r = i ; for( j = i + 1 ; j < n ; ++j ) if( fabs(A[j][i]) > fabs( A[r][i] ) ) r = j ; if( r != i ) for( j = 0 ; j <= n ; ++j ) swap( A[r][j] , A[i][j] ) ; for( j = n ; j >= i ; j-- ) { for( k = i + 1 ; k < n ; ++k ) { A[k][j] -= A[k][i] / A[i][i] * A[i][j] ; } } } for( i = n-1 ; i >=0 ; i-- ) { for( j = i + 1 ; j < n ; ++j ) A[i][n] -= A[j][n] * A[i][j] ; A[i][n] /= A[i][i]; } } int Run() { int _ , cas = 1 ; scanf("%d",&_); while( _-- ) { printf("Case %d: ",cas++); for( int i = 0 ; i < 3 ; ++i ) { for( int j = 0 ; j < 4 ; ++j ) { scanf("%lf",&A[i][j]); A[i][j] *= K ; } } solve(3) ; printf("%.2lf %.2lf %.2lf\n",A[0][3],A[1][3],A[2][3]); } return 0 ; } int main() { #ifdef LOCAL freopen("in","r",stdin); #endif ios::sync_with_stdio(0); return Run(); }
UVA 12849 Mother’s Jam Puzzle( 高斯消元 )
原文:http://www.cnblogs.com/hlmark/p/4371418.html