首页 > 其他分享 >模板大全

模板大全

时间:2023-01-27 20:11:50浏览次数:55  
标签:大全 int ll ret vector deg 模板 mod

barrett

点击查看代码
__int128 mu = -1ull / mod;
inline ll reduce(ll x) {
	ll r = x - (mu * x >> 64) * mod;
	return r >= mod ? r - mod : r;
}

整式递推

点击查看代码
vector<vector<int>> find_rel(const vector<int> &a, int deg) {
	int n = a.size(), B = (n + 2) / (deg + 2), C = B * (deg + 1), R = n - (B - 1), c = 0;
	assert(B >= 2 && R >= C - 1);
	vector<vector<int>> b(R, vector<int>(C));
	for (int i = 0; i < R; i++) {
		for (int j = 0; j < B; j++) {
			for (int k = 0, x = a[i + j]; k <= deg; k++, x = (ll)x * (i + j) % mod) {
				b[i][j * (deg + 1) + k] = x;
			}
		}
	}
	for (c = 0; c < C; c++) {
		int p = -1;
		for (int i = c; i < R; i++) {
			if (b[i][c]) {
				p = i;
				break;
			}
		}
		if (p == -1) break;
		swap(b[p], b[c]);
		int w = qpow(b[c][c]);
		for (int i = c; i < C; i++) {
			b[c][i] = (ll)b[c][i] * w % mod;
		}
		for (int i = c + 1; i < R; i++) if (b[i][c]) {
			int t = b[i][c];
			for (int j = c; j < C; j++) {
				b[i][j] = (b[i][j] + mod - (ll)b[c][j] * t % mod) % mod;
			}
		}
	}
	assert(c != C);
	for (int i = c - 1; ~i; i--) if (b[i][c]) {
		for (int j = i - 1; ~j; j--) {
			b[j][c] = (b[j][c] + mod - (ll)b[i][c] * b[j][i] % mod) % mod;
		}
	}
	int od = c / (deg + 1);
	vector<vector<int>> ret(od + 1, vector<int>(deg + 1));
	ret[0][c % (deg + 1)] = 1;
	for (int i = c - 1; ~i; i--) {
		ret[od - i / (deg + 1)][i % (deg + 1)] = mod - b[i][c];
	}
	for (int i = 0; i <= od; i++) {
		vector<int> tmp(deg + 1);
		for (int k = 0; k <= deg; k++) {
			for (int j = k, s = 1; j <= deg; j++) {
				tmp[k] = (tmp[k] + (ll)s * ret[i][j]) % mod;
				s = (ll)s * (mod - i) % mod * (j + 1) % mod * qpow(j + 1 - k) % mod;
			}
		}
		ret[i] = tmp;
	}
	return ret;
}

标签:大全,int,ll,ret,vector,deg,模板,mod
From: https://www.cnblogs.com/HitoriGotoh/p/17069254.html

相关文章

  • 二叉堆模板
    constexprintN=10001;structHeap{ intdatA[N];//startfrom1 intsiz; //int(*topper)(int,int);#definetopper(a,b)((a)<(b)) voidup(intid){ w......
  • A Template for C-Language Library Creation - 一个创建C语言运行库的模板
    ATemplateforC-LanguageLibraryCreation一个创建C语言运行库的模板WesupposethelibrarywewanttocreateislibElec.1)Createafolderinyourdisk,suchas......
  • 【图论】最短路模板
    SPFA:inlinevoidspfa(intx){memset(dis,0x3f,sizeof(dis));memset(vis,0,sizeof(vis));dis[x]=0;vis[x]=true;Q.push(x);while(!Q.empty()){intu......
  • 模板方法设计模式
    模板方法设计模式1.说明核心是:定义一个模板类,在模板类中规定其整体的骨架并确定哪些方法是允许子类可以去重写的,哪些是不允许子类去重写的.用来保证核心算法不被破坏.......
  • 多项式模板
    多项式模板\(\text{导数运算法则}\)$(x\pmy)'=x'\pmy'$$(ax)'=ax'$(\(a\)为常数)\((xy)'=x'y+xy'\)$(\displaystyle\frac{x}{y})=\displaystyle......
  • C++可变参数模板
    template<class...T>voidf(T...args){cout<<sizeof...(args)<<endl;}sizeof...一整个是运算符可以通过递归或逗号表达式方式展开该参数包可以使用这种可......
  • P5858 「SWTR-03」Golden Sword DP+单调队列模板
    P5858「SWTR-03」GoldenSword-洛谷|计算机科学教育新生态(luogu.com.cn) 理解题意后,我们知道贪心和暴力枚举显然是不行的,联想到DP我们设置dp[i][j]表示,第i种......
  • go 模板
    template.ParseFiles()实现:funcParseFiles(filenames...string)(*Template,error){returnparseFiles(nil,readFileOS,filenames...)}func(t*Template......
  • 动态规划 背包问题算法模板
    一篇文章吃透背包问题!(细致引入+解题模板+例题分析+代码呈现)  https://leetcode.cn/problems/partition-equal-subset-sum/solution/yi-pian-wen-zhang-chi-tou-bei-b......
  • 基于Laravel9+Vue+ElementUI的管理系统模板源码
    项目介绍一款PHP语言基于Laravel9.x、Vue、ElementUI等框架精心打造的一款模块化、插件化、高性能的前后端分离架构敏捷开发框架,可用于快速搭建前后端分离后台管理系统,本......