zoukankan      html  css  js  c++  java
  • 垃圾行列式 学习笔记

    这东西坑人……

    整数

    一般会要求取模,而且模数不一定是质数。

    void Dswap(int N,int p,int q){
    	rep(i,1,N)swap(a[p][i],a[q][i]);
    }
    
    void deter(int N){
    	bool fu=0;
    	rep(i,1,N){
    		int wei=i;bool flag=0;
    		rep(j,i,N){
    			if(a[j][i]&&!flag)flag=1;
    			if(a[j][i]&&a[j][i]<a[wei][i])wei=j;
    		}
    		if(!flag){ans=0;return;}
    		if(i!=wei)Dswap(N,i,wei),fu=1-fu;
    		rep(j,i+1,N){
    			if(a[j][i]>a[i][i]){Dswap(N,i,j);fu=1-fu;}
    			while(a[j][i]){
    				lon tmp=a[i][i]/a[j][i];
    				rep(k,i,N)a[i][k]=(a[i][k]+(mo-tmp)*a[j][k])%mo;				
    				Dswap(N,i,j);
    				fu=1-fu;
    			}
    		}
    		ans=ans*a[i][i]%mo;
    	}
    	if(fu)ans=(-ans+mo)%mo;
    }
    
    

    常数小,但是不能处理模数不是质数的情况:(有锅待修,先别用!!)

    void Dswap(int N,int p,int q){
    	rep(i,1,N)swap(a[p][i],a[q][i]);
    }
    
    void deter(int N){
        bool fu=0;
    	rep(i,1,n){
    		rep(j,i+1,n)while(a[j][i]){
    			lon tmp=a[i][i]/a[j][i];
    			rep(k,i,n)a[i][k]=(a[i][k]-tmp*a[j][k]%mo+mo)%mo;
    			Dswap(N,i,j);
    			fu=1-fu;
    		}
    		ans=(ans*a[i][i]%mo+mo)%mo;
    	}
    	if(fu)ans=(-ans+mo)%mo;
    }
    

    小数

    注意精度,所以判断 0 的方式是 fabs(a)>eps 而不是 a==0。(eps=1e-15)

    void Dswap(int N,int p,int q){
    	rep(i,1,N)swap(a[p][i],a[q][i]);
    }
    
    void deter(int N){
    	bool fu=0;
    	rep(i,1,N){
    		int wei=i;
    		rep(j,i,N)if(zro(a[j][i])){wei=j;break;}
    		if(i!=wei)Dswap(N,i,wei),fu=1-fu;
    		rep(j,i+1,N){
    			while(zro(a[j][i])&&zro(a[i][i])){
    				if(a[j][i]>a[i][i]){Dswap(N,i,j);fu=1-fu;}
    				lod tmp=a[j][i]/a[i][i];
    				rep(k,i,N)a[j][k]=a[j][k]-tmp*a[i][k];
    			}
    			if(!zro(a[i][i]))Dswap(N,i,j),fu=1-fu;
    		}
    		ans=ans*a[i][i];
    	}
    	if(fu)ans=-ans;
    }
    
  • 相关阅读:
    详解用em替换px
    js判断是否为ie浏览器
    nth-child()选择器小结
    HTML5之canvas
    MQTT-SN协议乱翻之消息格式
    MQTT-SN协议乱翻之简要介绍
    MQTT 3.1.1,值得升级的6个新特性
    MQTT 3.1协议非严肃反思录
    MQTT协议笔记之mqtt.io项目HTTP协议支持
    MQTT协议笔记之mqtt.io项目Websocket协议支持
  • 原文地址:https://www.cnblogs.com/BlankAo/p/14263643.html
Copyright © 2011-2022 走看看