随笔分类 -  模板

摘要: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 阅读(63) 评论(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 阅读(34) 评论(0) 推荐(0)
摘要:多项式vector模板 任意模数多项式vector模板 非负数vector高精度模板 二维计算几何模板 最大流/费用流模板 矩阵乘法模板 组合数模板 阅读全文
posted @ 2023-11-30 07:55 A_zjzj 阅读(135) 评论(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 阅读(50) 评论(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 阅读(39) 评论(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 阅读(26) 评论(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 阅读(35) 评论(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 阅读(39) 评论(0) 推荐(0)
摘要:因为之前没有看到过既有负数,还可以压位的高精度运算,所以我就自己发一篇(原来这么简单,我$1h$就写好了) 如果有什么$bug$,请在评论区回复或私聊我,我周末会看的。 本模板支持$+,-,\times,\div,\bmod,a^b,a^b \bmod x$ ### 模板 ```cpp #inclu 阅读全文
posted @ 2022-06-11 15:54 A_zjzj 阅读(52) 评论(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 阅读(255) 评论(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 阅读(33) 评论(0) 推荐(0)
摘要:\(\gcd\) 定义:求出两个数的最大公因数。 算法定律:\(\gcd(a,b)=\gcd(b,a\bmod b)\) 证明: 设$\gcd(a,b)=k,a=t_1\times k,b=t_2\times k$ 可知,\(\gcd(t_1,t_2)=1\),如果还有一个$t$,那么就可以说明$a 阅读全文
posted @ 2022-06-10 20:01 A_zjzj 阅读(47) 评论(0) 推荐(0)
摘要:首先,先谈谈快读快写 这是我一开始的输入输出 cin>>a; cout<<a; 然后,因为在一次模拟赛中$cin$被卡掉了,于是,我就改用 scanf("%d",&a); printf("%d",a); 可是,又有一道题,我打出了正解,可是$T$掉了一个点,结果用了快读快写,就$A$了,为什么快读会 阅读全文
posted @ 2022-06-10 19:18 A_zjzj 阅读(445) 评论(0) 推荐(0)
摘要:卡特兰数简介 卡特兰数其实不是一个数,而是一个数列。 一、了解卡特兰数 卡特兰数又称卡塔兰数,它是组合数学中一个常出现在各种计数问题中出现的数列,其前几项为 : $1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862,$ \(16796, 58786, 208012,.. 阅读全文
posted @ 2022-06-10 19:13 A_zjzj 阅读(200) 评论(0) 推荐(0)
摘要:高精度 有些时候题目的数据太大,一般我们常用 \(int\) 的变量就够了,可有时候还不够,要用 \(unsigned\ int\) ,有时候 \(unsigned\ int\) 都不够,就要用 \(long\ long\) ,有时候 \(long\ long\) 还不够,用 \(unsigned\ 阅读全文
posted @ 2022-06-10 19:01 A_zjzj 阅读(158) 评论(0) 推荐(0)
摘要:题目描述 用高精度计算出$S=1!+2!+3!+…+n! (n\le 50)$ 其中$“!”$表示阶乘,例如:\(5!=5 \times 4 \times 3 \times 2 \times 1\)。 输入格式 一个正整数$N$。 输出格式 一个正整数$S$,表示计算结果。 输入输出样例 输入 #1 阅读全文
posted @ 2022-06-10 18:27 A_zjzj 阅读(33) 评论(0) 推荐(0)
摘要:数据结构之树状数组 zhengjun P3374题目(树状数组1) 题目描述: 已知一个数列,你需要进行下面两种操作: 将某一个数加上 x 求出某区间每一个数的和 输入格式 第一行包含两个正整数 n,mn,m,分别表示该数列数字的个数和操作的总个数。 第二行包含 nn 个用空格分隔的整数,其中第 i 阅读全文
posted @ 2022-06-10 18:24 A_zjzj 阅读(51) 评论(0) 推荐(0)