zoukankan      html  css  js  c++  java
  • 高斯消元入门

    luogu3389

    https://www.luogu.org/problemnew/show/3389

    板子题

    #include<cstdio>
    #include<cstdlib>
    #define ROF(i,s,t) for(register int i=s;i>=t;--i)
    #define FOR(i,s,t) for(register int i=s;i<=t;++i)
    typedef double db;
    int n;
    db a[233][233];
    db ans[233];
    inline void gauss(){
    	db mult;
    	FOR(i,1,n){
    		FOR(j,i+1,n){
    			mult=-a[j][i]/a[i][i];
    			FOR(k,i,n+1)
    				a[i][k]*=mult,a[j][k]+=a[i][k];
    			if(!a[j][j]){
    				puts("No Solution");
    				exit(0);
    			}
    		}
    	}
    }
    inline void back(){
    	db b;
    	ROF(i,n,1){
    		b=0;
    		FOR(j,i+1,n)
    			b+=a[i][j]*ans[j];
    		ans[i]=(a[i][n+1]-b)/a[i][i];
    	}
    }
    int main(){
    	scanf("%d",&n);
    	FOR(i,1,n)
    		FOR(j,1,n+1)
    			scanf("%lf",&a[i][j]);
    	gauss();
    	back();
    	FOR(i,1,n)
    		printf("%.2lf
    ",ans[i]);
    	return 0;
    }
    

      

    BZOJ1013

    http://www.lydsy.com/JudgeOnline/problem.php?id=1013

    然后用1~n式减去(n+1)式,得到n个式子,x2和r2均被消去

    得到n元线性方程组

    然后高斯消元搞搞出解

    #include<cstdio>
    #include<cstdlib>
    #define ROF(i,s,t) for(register int i=s;i>=t;--i)
    #define FOR(i,s,t) for(register int i=s;i<=t;++i)
    typedef double db;
    int n;
    db a[66][66],b[66][66],ans[66];
    inline void gauss(){
    	db mult;
    	FOR(i,1,n){
    		FOR(j,i+1,n){
    			mult=-b[j][i]/b[i][i];
    			FOR(k,i,n+1)
    				b[i][k]*=mult,b[j][k]+=b[i][k];
    		}
    	}
    }
    inline void back(){
    	db c;
    	ROF(i,n,1){
    		c=0;
    		FOR(j,i+1,n)
    			c+=b[i][j]*ans[j];
    		ans[i]=(b[i][n+1]-c)/b[i][i];
    	}
    }
    int main(){
    	scanf("%d",&n);
    	FOR(i,1,n+1){
    		FOR(j,1,n){
    			scanf("%lf",&a[i][j]);
    			a[i][n+1]-=a[i][j]*a[i][j];
    			a[i][j]=-2.00*a[i][j];
    		}
    	}
    	FOR(i,1,n)
    		FOR(j,1,n+1)
    			b[i][j]=a[i][j]-a[n+1][j];
    	gauss();
    	back();
    	printf("%.3lf",ans[1]);
    	FOR(i,2,n)
    		printf(" %.3lf",ans[i]);
    	return 0;
    }
    

      

  • 相关阅读:
    【有感】向香港雷锋学什么
    After NeuSoft’s Interview
    【SHELL学习】if语句
    《我是一只IT小小鸟》【1】
    MSDN微软社区 大连线下聚会 即将举行
    【毕业设计】修改用户信息
    SQL Connection
    EasyPR中文开源车牌识别系统 开发详解(1)
    EasyPR开发详解(2)车牌定位
    EasyPR开发详解(4)形态学操作、尺寸验证、旋转等操作
  • 原文地址:https://www.cnblogs.com/Stump/p/8111248.html
Copyright © 2011-2022 走看看