• 一个极短,极好记,常数小的行列式求值模板——qyy 行列式


    来源:之前看 qyy 在洛谷的板子题上交了一个写的特别优美,特别短小精悍的行列式求值,某天需要做一个用矩阵树定理的题,就学习了一下,并自行进行了简单的卡常改进。

    我暂且把它叫做亓爷爷行列式。

    特别优美,改进后常数也较小,最重要的是短而好记啊!交模板题的时候算上输入输出也只有 600b,算是用时和代码长度都较优的一个版本。

    Mod 是模数,Array_Size 表示数组大小。

    成品:

    int Mod;
    
    int det(int a[][Array_Size], int n) {
    	int res = 1;
    	for(int k = 1; k <= n && res; res = 1ll * res * a[k][k] % Mod, ++k)
    		for(int i = k + 1, c; i <= n; ++i) {
    			while(a[k][k]) {
    				c = a[i][k] / a[k][k];
    				for(int j = k; j <= n; ++j)
    					a[i][j] = (a[i][j] + 1ll * (Mod - c) * a[k][j]) % Mod;
    				std::swap(a[i], a[k]), res = Mod - res;
    			}
    			std::swap(a[i], a[k]), res = Mod - res; 
    		}
    	return res;
    }
    
  • 相关阅读:
    分页类
    验证码扭曲类
    model 概念(笔记)
    php单例模式
    php 无限极分类查找家谱树
    数组的合并
    无限极分类之查找子孙树
    android xml中的xliff属性
    android 悬浮覆盖状态栏的相关建议
    【jzoj】20190323比赛总结
  • 原文地址:https://www.cnblogs.com/zimujun/p/15505235.html
Copyright © 2020-2023  润新知