随笔分类 -  模板

摘要:ll qpow(ll x,ll y=mod-2,ll ans=1){ for(;y;(x*=x)%=mod,y>>=1)if(y&1)(ans*=x)%=mod; return ans; } int fac[N],ifac[N]; int C(int n,int m){ if(0>m||m>n)re 阅读全文
posted @ 2024-04-12 13:40 A_zjzj 阅读(48) 评论(0) 推荐(0) 编辑
摘要:using LL=__int128; int mod=998244353; ll qpow(ll x,ll y=mod-2,ll ans=1){ for(;y;(x*=x)%=mod,y>>=1)if(y&1)(ans*=x)%=mod; return ans; } mt19937 rnd(time 阅读全文
posted @ 2023-11-30 09:00 A_zjzj 阅读(23) 评论(0) 推荐(0) 编辑
摘要:多项式vector模板 任意模数多项式vector模板 非负数vector高精度模板 二维计算几何模板 最大流/费用流模板 矩阵乘法模板 组合数模板 阅读全文
posted @ 2023-11-30 07:55 A_zjzj 阅读(93) 评论(0) 推荐(0) 编辑
摘要:vector 实现。 using LL=__int128; const int mod=998244353; ll qpow(ll x,ll y=mod-2,ll ans=1){ for(;y;(x*=x)%=mod,y>>=1)if(y&1)(ans*=x)%=mod; return ans; } 阅读全文
posted @ 2023-11-30 07:53 A_zjzj 阅读(35) 评论(0) 推荐(0) 编辑
摘要:#include<bits/stdc++.h> using namespace std; using ll=long long; #ifdef DEBUG template<typename T> ostream& operator << (ostream &out,vector<T> a){ ou 阅读全文
posted @ 2023-11-17 07:30 A_zjzj 阅读(32) 评论(0) 推荐(0) 编辑
摘要:二维 using vec=complex<int>; ll dot(const vec &a,const vec &b){ return 1ll*real(a)*real(b)+1ll*imag(a)*imag(b); } ll cross(const vec &a,const vec &b){ r 阅读全文
posted @ 2023-10-11 13:43 A_zjzj 阅读(17) 评论(0) 推荐(0) 编辑
摘要:最大流 const int N=5e2+10,M=26,INF=1e9; namespace Flow{ const int V=N+M,E=N*M*2+N*2+M*2+V*2; int s,t,kk,head[V],d[V],cur[V]; struct edges{ int to,c,nex; 阅读全文
posted @ 2023-10-09 16:08 A_zjzj 阅读(18) 评论(0) 推荐(0) 编辑
摘要:const int M=3; using vec=array<int,M>; using matrix=array<vec,M>; #ifdef DEBUG ostream& operator << (ostream &out,vec a){ out<<'['; for(int x:a)out<<x 阅读全文
posted @ 2023-08-09 16:39 A_zjzj 阅读(33) 评论(0) 推荐(0) 编辑
摘要:因为之前没有看到过既有负数,还可以压位的高精度运算,所以我就自己发一篇(原来这么简单,我1h就写好了) 如果有什么bug,请在评论区回复或私聊我,我周末会看的。 本模板支持+,,×,÷,mod,ab,abmodx ### 模板 ```cpp #inclu 阅读全文
posted @ 2022-06-11 15:54 A_zjzj 阅读(47) 评论(0) 推荐(0) 编辑
摘要:int,char,double,long long,string,char[] 都可以输入输出 double 的输出方法 ```cpp double x=123.123;fout using namespace std;typedef long long ll; struct Precision{i 阅读全文
posted @ 2022-06-11 15:54 A_zjzj 阅读(183) 评论(0) 推荐(0) 编辑
摘要:循环队列 template<typename item,const int _size> class cirqueue{ private: item q[_size]; int head,tail; int len; public: cirqueue(){ memset(q,0,sizeof(q)) 阅读全文
posted @ 2022-06-11 15:06 A_zjzj 阅读(25) 评论(0) 推荐(0) 编辑
摘要:gcd 定义:求出两个数的最大公因数。 算法定律:gcd(a,b)=gcd(b,amodb) 证明: 设gcd(a,b)=k,a=t1×k,b=t2×k 可知,gcd(t1,t2)=1,如果还有一个t,那么就可以说明$a 阅读全文
posted @ 2022-06-10 20:01 A_zjzj 阅读(41) 评论(0) 推荐(0) 编辑
摘要:首先,先谈谈快读快写 这是我一开始的输入输出 cin>>a; cout<<a; 然后,因为在一次模拟赛中cin被卡掉了,于是,我就改用 scanf("%d",&a); printf("%d",a); 可是,又有一道题,我打出了正解,可是T掉了一个点,结果用了快读快写,就A了,为什么快读会 阅读全文
posted @ 2022-06-10 19:18 A_zjzj 阅读(359) 评论(0) 推荐(0) 编辑
摘要:卡特兰数简介 卡特兰数其实不是一个数,而是一个数列。 一、了解卡特兰数 卡特兰数又称卡塔兰数,它是组合数学中一个常出现在各种计数问题中出现的数列,其前几项为 : 1,1,2,5,14,42,132,429,1430,4862, \(16796, 58786, 208012,.. 阅读全文
posted @ 2022-06-10 19:13 A_zjzj 阅读(184) 评论(0) 推荐(0) 编辑
摘要:高精度 有些时候题目的数据太大,一般我们常用 int 的变量就够了,可有时候还不够,要用 unsigned int ,有时候 unsigned int 都不够,就要用 long long ,有时候 long long 还不够,用 \(unsigned\ 阅读全文
posted @ 2022-06-10 19:01 A_zjzj 阅读(153) 评论(0) 推荐(0) 编辑
摘要:题目描述 用高精度计算出S=1!+2!+3!++n!(n50) 其中!表示阶乘,例如:5!=5×4×3×2×1。 输入格式 一个正整数N。 输出格式 一个正整数S,表示计算结果。 输入输出样例 输入 #1 阅读全文
posted @ 2022-06-10 18:27 A_zjzj 阅读(27) 评论(0) 推荐(0) 编辑
摘要:数据结构之树状数组 zhengjun P3374题目(树状数组1) 题目描述: 已知一个数列,你需要进行下面两种操作: 将某一个数加上 x 求出某区间每一个数的和 输入格式 第一行包含两个正整数 n,mn,m,分别表示该数列数字的个数和操作的总个数。 第二行包含 nn 个用空格分隔的整数,其中第 i 阅读全文
posted @ 2022-06-10 18:24 A_zjzj 阅读(35) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示