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;
    }
    
  • 相关阅读:
    Oracle如何定义两个数组变量
    Oracle 数组定义
    Oracle的Number对应C#数据类型
    Oracle删除临时表
    我的第一个Flutter 项目(电商)
    Dart Mac 安装环境(无敌)
    React Native 问题(运行)
    TS的一些用法和普通的对比(Vue)
    vue2.0和vue3.0的响应式原理
    简易orm 主要是为了旧平台查询方便
  • 原文地址:https://www.cnblogs.com/BlankAo/p/14263643.html
Copyright © 2011-2022 走看看