首页 > 其他分享 >常用模板库

常用模板库

时间:2024-06-03 16:34:40浏览次数:13  
标签:qpow 常用 return int exgcd MAXN 模板 MOD

数学、数论

namespace math{
	int mu[MAXN],prime[MAXN];
	bitset<MAXN> is_prime;
	int MOD;
	int frac[MAXN];
	int qpow(int a,int b){
		if(b==0) return 1;
		if(b==1) return a;
		int k = qpow(a,b>>1);
		k*=k;k%=MOD;
		if(b&1) k*=a;k%=MOD;
		return k;
	}
	int exgcd(int a,int b,int &x,int &y){
		if(b==0){
			x = 1;y = 0;
			return a;
		}
		int t = exgcd(b,a%b,x,y);
		int g = x;
		x = y;
		y = g-a/b*y;
		return t;
	}
	int inv(int a){
		return qpow(a,MOD-2);
	}
	int ex_inv(int a){
		int x,y;
		exgcd(a,MOD,x,y);
		return (x%m+m)%m;
	}
	int C(int n,int m){
		if(n<m) return 0;
		return frac[n]*ex_inv(frac[m]*frac[n-m]%MOD)%MOD;
	}
	int get(int n,int m){
		return C(m+n-1,m);
	}
	void frac_init(){
		frac[0] = 0;
		for(int i = 1;i<MAXN;i++){
			frac[i] = frac[i-1]*i;
			frac[i]%=MOD;
		}
	}
	int lowbit(int k){
		return k&(-k);
	}
	int bit(int k){
		int sum = 0;
		while(k){
			sum ++;
			k -= lowbit(k);
		}
		return sum;
	}
	int log2(int k){
		for(int i = 0;i<=64;i++){
			int p = 1;
			if(p<<i==k) return i;
		}
		return 0;
	}
	void Euler_sieve(){
		mu[1] = 1;
		for(int i = 2;i<MAXN;i++){
			if(!is_prime[i]){
				prime[++prime[0]] = i;
				mu[i] = -1;
			}
			for(int j = 1;j<=prime[0]&&i*prime[j]<MAXN;j++){
				is_prime[i*prime[j]] = 1;
				if(i%prime[j]==0){
					mu[i*prime[j]] = 0;
					break;
				}else{
					mu[i*prime[j]] = -mu[i];
				}
			}
		}
	}
}

标签:qpow,常用,return,int,exgcd,MAXN,模板,MOD
From: https://www.cnblogs.com/gutongxing/p/18229154

相关文章

  • ESXi常用Esxcli的指令
    前言使用Esxcli命令可获取有关vSAN的信息,以及对您的vSAN环境进行故障排除。可用命令如下:命令描述esxclivsannetworklist确认哪些VMkernel适配器可用于vSAN通信。esxclivsanstoragelist列出由vSAN声明的存储磁盘。esxclivsanclusterget......
  • 一个简单的HTML网页 故宫学生网页设计作品 dreamweaver作业静态HTML网页设计模板 旅游
    家乡旅游景点网页作业制作网页代码运用了DIV盒子的使用方法,如盒子的嵌套、浮动、margin、border、background等属性的使用,外部大盒子设定居中,内部左中右布局,下方横向浮动排列,大学学习的前端知识点和布局方式都有运用,CSS的代码量也很足、很细致,使用hover来完成过渡效果、鼠......
  • 学生家乡网页设计作品静态HTML网页模板源码 广西旅游景点网页设计 大学生家乡主题网站
    家乡旅游景点网页作业制作网页代码运用了DIV盒子的使用方法,如盒子的嵌套、浮动、margin、border、background等属性的使用,外部大盒子设定居中,内部左中右布局,下方横向浮动排列,大学学习的前端知识点和布局方式都有运用,CSS的代码量也很足、很细致,使用hover来完成过渡效果、鼠......
  • 常用 Git 命令清单
    目录一、新建代码库 二、配置三、代码提交和同步代码第1步:工作区与仓库保持一致第2步:文件增删改,变为已修改状态第3步:gitadd,变为已暂存状态第4步:gitcommit,变为已提交状态第5步:gitpush,变为已推送状态四、代码撤销和撤销同步已修改,但未暂存已暂存,未提......
  • docker学习--docker容器镜像常用命令大全(简)
    文章目录一、镜像命令二、容器管理命令一、镜像命令dockersearch#搜索镜像dockerpull/push#下载/上传镜像dockerimages#查看所有本地主机上的镜像可以使用dockerimagels代替dockertag#源镜像名新镜像名dockerrmi#删除镜像dockerimageprune#移......
  • IDEA自定义配置注释模板,让你看起来更加专业!!!
    一:类注释我们先来康康成果:在以上的代码中我们可以看到只要创建一个类,idea自动会给你补充注释消息,有作者信息和创建时间关于模板参数代码我已经放到下面了:/***@author:dlwlrma*@data${YEAR}年${MONTH}月${DAY}日${TIME}*/ 使用方法:打开IDEA的Settings,点击Edi......
  • [ Python ] 常用运算符对应的魔法方法
    https://www.cnblogs.com/yeungchie/Python中的运算符丰富多样,它们可以分为多个类别,包括算术运算符、比较运算符、逻辑运算符、位运算符、身份运算符、成员运算符等。每个运算符都有其对应的魔法方法(也称为特殊方法或dunder方法,即双下划线方法),这些方法在特定情况下会被Python调用......
  • 常用设计模式总结,附完整图解
    UML类图类图定义规则属性和方法前加上(+、-、#、留空)分别代表:公开(public)、私有(private)、保护(protected)、缺省(default)方法括号内为参数类型,冒号后为返回值类型下划线表示静态(static),斜体表示抽象(abstract) 类图关系表示法其中关联、聚合、组合,比较容易混淆,它们的区别:关......
  • SpringBoot常用注解
    1、bean相关注解注解名作用@Component将类交给SpringBoot管理@Repository放在dao层@Service放在service层,即业务服务层@Controller放在控制层,即handler层@RestController@Response和@Controller的组合注解,返回的是JSON数据@Configuration声明一个类为配置类,常和Bean、Scope......
  • MVC中几种常用ActionResult
    一、定义MVC中ActionResult是Action的返回结果。ActionResult有多个派生类,每个子类功能均不同,并不是所有的子类都需要返回视图View,有些直接返回流,有些返回字符串等。ActionResult是一个抽象类,它定义了唯一的ExecuteResult方法,参数为一个ControllerContext,下面为您介绍MVC中的Act......