自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

原创 my测试点

【代码】测试点。

2023-04-27 10:36:13 75

原创 p3806 点分治模板

给一棵树,问树上长度为k的路径是否存在。点分治核心就是对于经过根节点的路径dfs求解,对于不经过根节点的路径分治求解(在子树上分治)。////#pragma GCC optimize("Ofast")//#pragma GCC target("avx,avx2,fma")//#pragma GCC optimization ("unroll-loops")////#pragma GCC optimize(3,"Ofast","inline")//#include<unordered_m

2021-01-25 11:57:52 155

原创 矩阵快速幂模板

int N=3;struct Mat{ ll m[N+7][N+7];};int N=3;Mat Mul(Mat x,Mat y){ Mat c; for(int i=1;i<=N;++i){ for(int j=1;j<=N;++j){ c.m[i][j] = 0; } } for(int i=1;i<=N;++i){ for(int j=1;j<=N;++j

2020-12-24 15:12:31 102 1

原创 树链剖分模板P3384

////#pragma GCC optimize("Ofast")//#pragma GCC target("avx,avx2,fma")//#pragma GCC optimization ("unroll-loops")////#pragma GCC optimize(3,"Ofast","inline")#include<unordered_map>//#include<unordered_set>#include<cstdio>#include&

2020-11-19 12:44:48 98

原创 tarjan割点 洛谷P3388模板

////#pragma GCC optimize("Ofast")//#pragma GCC target("avx,avx2,fma")//#pragma GCC optimization ("unroll-loops")//#pragma GCC optimize(3,"Ofast","inline")//#include<unordered_map>//#include<unordered_set>#include<cstdio>#include&

2020-11-06 15:19:53 99

原创 树状数组,二维树状数组

一维:int n;int a[1005],c[1005]; //对应原数组和树状数组int lowbit(int x){ return x&(-x);}void updata(int i,int k){ //在i位置加上k while(i <= n){ c[i] += k; i += lowbit(i);`在这里插入代码片` }}int getsum(int i){ //求A[1 - i]的和

2020-10-26 13:35:21 101

原创 51nod 1829 函数 第二类斯特林数

题意就是把n个不同的物体放到m个不同的盒子里,斯特林数是求相同的盒子,所以就是求S*(n,m)=m!*S(n,m)用递推的解法S(n,m)=m*S(n-1,m)+S(n-1,m-1)是O(n^2)肯定会t,所以直接用容斥推的式子。//#pragma GCC optimize(3,"Ofast","inline")#include<unordered_map>//#include<unordered_set>#include<cstdio>#include&l

2020-10-08 20:22:28 87

原创 求逆元

太强了,这方法除了递归还可以用dp的手法写出1-n所有数的逆元

2020-10-08 16:30:23 78

原创 LCA最近公共祖先 RMQ法 洛谷p3379

dfs序上两点之间深度最小的点就是最近公共祖先节点,用rmq在深度数组求区间最值即可//#pragma GCC optimize(3,"Ofast","inline")#include<unordered_map>//#include<unordered_set>#include<cstdio>#include<iostream>#include<cmath>#include<functional>#include&lt

2020-10-07 12:54:19 97

原创 最短路模板

//#pragma GCC optimize(3,“Ofast”,“inline”)//#include<unordered_map>//#include<unordered_set>#include#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespac

2020-10-03 13:56:28 296

原创 单个欧拉函数模板 p4139欧拉降幂

ll _phi(ll x){ ll ans=x,tp=sqrt(x); for(ll i=2;i<=tp;++i) if(x%i==0) { ans=ans-ans/i; while(x%i==0)x/=i; } if(x>1)ans=ans-ans/x; return ans;}

2020-09-29 12:53:08 109 1

原创 min25筛+洛谷P5325

xyxyyds,xxy数学不好//这个代码是求f(x)=x的min25筛,也就是数本身的//#pragma GCC optimize(3,"Ofast","inline")//#include<unordered_map>//#include<unordered_set>#include<cstdio>#include<iostream>#include<cmath>#include<functional>#in

2020-09-28 16:10:46 151

原创 Miller_Rabin素数检测

ll p;ll mul(ll a,ll b){ ll r=0; while(b) { if(b&1) r+=a,r%=p; a<<=1; a%=p; b>>=1; } return r;}ll qm(ll a,ll b){ ll r=1; while(b) { if(b&1) r=mul(r,a); .

2020-09-21 16:53:08 88

原创 K-th Number(牛客) 二分

传送门:https://ac.nowcoder.com/acm/problem/14301打死我也想不到是二分。题目大意:数组b的元素是,数组a中所有区间长度大于等于k的区间的第k大数(有点绕?)求数组b中第m大的数。二分答案,judje的内容是求所有区间中包含大于等于k个不小于mid的区间的数量//#pragma GCC optimize(3,"Ofast","inline")#include<unordered_map>#include<unordered_set&gt

2020-09-12 12:23:19 120

原创 P1099 树网的核

思路:先找出树的直径,然后在直径上尺取得到最终结果。这个题数据很水,听说bzoj上有加强到1e5的数据,我是想过了洛谷的题之后在bzoj上试试的,但谁知没机会了。上代码://#pragma GCC optimize (2)#include<cstdio>#include<iostream>#include<cmath>#include<functional>#include<cstring>#include<string

2020-09-11 16:59:00 100

原创 P4213 杜教筛

首先引入这三个函数:在引入三个常见的迪利克雷卷积:下面进入正题,所谓杜教筛,其实就是一个求积性函数前缀和的定理,如果要求的前缀和数量太大,比如前1e9个数的和,就没法通过累加解决,所以就有了我们的杜教筛。杜教筛主要的核心就是一个公式:这个题的题意是要求莫比乌斯函数u和欧拉函数phi的前缀和,n的大小在2^31以内。如何利用杜教筛解决这个问题呢?我们需要做的就是寻找合适的函数帮助我们凑出杜教筛的核心公式,S(n)毋庸置疑就是sigma_u和sigma_phi了,我们只需要找合适的函数来代替g和

2020-09-09 19:40:23 96

原创 SG函数

博弈问题知识sg(x) = mex{ x所有后继y的 sg(y) }mex指的是集合中最小的不属于这个集合的非负整数,如果sg(x)等于0,那么说明此时先手方位于必败点。如果说x的下一个状态会分解成多个游戏,那么sg(x)就等于x所有分解出的游戏的亦或和,这个亦或和就代表x的其中一个后继值的sg值,然后再将这些sg(y)取mex值。...

2020-09-01 20:00:44 99

原创 数位dp 不要62

目前理解的数位dp就是从最高位开始在一个数的每一位的每一种可能数字进行记忆化搜索。这个代码就是从一个名字叫不降数的题目中搬过来的,自己改了一下竟然过了。香香~//#pragma GCC optimize(3,"Ofast","inline")#include<unordered_map>#include<unordered_set>#include<cstdio>#include<iostream>#include<cmath>#

2020-09-01 13:25:28 107

原创 km算法(直接复制粘贴网上的)

#include <iostream>#include <cstring>#include <cstdio> using namespace std;const int MAXN = 305;const int INF = 0x3f3f3f3f; int love[MAXN][MAXN]; // 记录每个妹子和每个男生的好感度int ex_girl[MAXN]; // 每个妹子的期望值int ex_boy[MAXN]; //

2020-08-18 23:22:06 150

原创 计蒜客7.24场 F Sub Matrix Sum

题目大意是给出一个数s,再给出一个二维矩阵,要找到“满足矩阵和大于等于s”这个条件的最小矩阵,输出最小矩阵的元素的数目。思路:首先要降维,对每一列处理前缀和,这样我们可以得到任意两行之间的数的总和压缩到一维数组,再对一维数组进行前缀和处理,这样我们就可以枚举所有两行之间进行二分寻找最小的宽度,也就是我们的最小矩阵,但是数组里有复数,不能满足单调性,所以要用单调栈来维护单调性,二分的对象也是单调栈内存储的下标。//#pragma GCC optimize(3,"Ofast","inline")#incl

2020-08-01 03:02:18 179

原创 HDU-2222 ac自动机模板题

夜来香//#pragma GCC optimize(3,"Ofast","inline")#include<unordered_map>#include<unordered_set>#include<cstdio>#include<iostream>#include<cmath>#include<functional>#include<cstring>#include<string>#incl

2020-07-24 02:50:47 95

原创 树的最小点覆盖(hdu1054)

树形dp,爱了爱了,b站万岁//#pragma GCC optimize(3,"Ofast","inline")//ios::sync_with_stdio(false);#include<unordered_map>#include<unordered_set>#include<cstdio>#include<iostream>#include<cmath>#include<functional>#include&l

2020-05-27 13:10:47 920

原创 树的重心(POJ1655)

树的重心:设size[x]为x点的所有最大子树的大小,树的重心为min(size[x])//#pragma GCC optimize(3,"Ofast","inline")//ios::sync_with_stdio(false);//#include<unordered_map>//#include<unordered_set>#include<cstdio>#include<iostream>#include<cmath>#in

2020-05-26 17:25:44 235

原创 旬牙利算法(最大匹配)

那天做题听说这个算法的,乍一听还在想这是什么nb算法,然后学了一下最后一看代码发现在啊哈上面看过。这个就是求一个二分图的最大匹配的算法。代码如下://#pragma GCC optimize(3,"Ofast","inline")//ios::sync_with_stdio(false);#include<unordered_map>#include<unordered_set>#include<cstdio>#include<iostream&gt

2020-05-11 20:46:21 588

原创 exgcd_扩展欧几里得

ll X,Y;ll exgcd(ll a, ll b){ if (b == 0) { X = 1; Y = 0; return a; } ll d = exgcd(b, a%b); ll t = X - a / b*Y; X = Y; Y = t; return d;}原理很深奥,X和Y逆向推...

2020-04-27 21:40:55 113

原创 HDU-1695(水题3)

莫比乌斯反演入门题大佬们口中的最后一道水题(我c了)题意:给你五个数,a,b,c,d,k,分别从a-b和c-d两个区间中分别取两个数x,y,使得gcd(x,y)等于k,问这样的(x,y)有多少对(这里(x,y)和(y,x)相同)题目中特别标明了a和c都当1处理。题解:因为是1——b和1——d选两个数使gcd等于k嘛,很容易转换为1——b/k和1——d/k中有多少对数互质,我们设f(t)等于...

2020-02-17 13:38:47 188

原创 mobius

莫比乌斯函数ll prime[maxn],isprime[maxn];ll mob[maxn];ll num;void getmobius(){ memset(prime,0,sizeof(prime)); memset(mob,0,sizeof(mob)); memset(isprime,1,sizeof(isprime)); mob[1]=1; ...

2020-02-17 12:09:46 274

原创 P-2568(水题2)

第二道大佬们口中的数论水题题目大意:给一个数n,求有多少对(x,y) (x,y均小于等于m),gcd(x,y)等于一个素数。注意:(x,y)和(y,x)不一样。这个题和我们的水题1差不多的道理,就是方法不一样(但我还是不会)题解:假设我们先找最大公约数为2的(x,y)对,那么我们正常的思路就是枚举每一个y%2==0的y然后将这些和y/2互素的数(欧拉数)加起来,这样的话y就是取2,4,6...

2020-02-16 19:58:03 168

原创 HDU-2588(水题1)

来一道数论水题在这里插入代码片题目大意呢,就是给你一个数n,m,问你在1~n中有多少个x,使得gcd(x,n)>=m。这个题啊,我是一点也不觉得哪里算水,毕竟我太菜了。题解:我们可以先假设找出了这个公约数,设为s,那么x和n提出这个s后,我们分别设为a和b,即(x,y)->(s x a,s x b),那么重点来了,注意集中精力啊,可以得出的a和b就是两个互质的数!因为x<=...

2020-02-16 16:40:05 150

原创 gcd lcm

ll gcd(ll a,ll b){ return b==0?a:gcd(b,a%b);}//求最大公约数ll lcm(ll a,ll b){ return a*(b/gcd(a,b));}//求最小公倍数

2020-02-01 19:16:09 110

原创 主席树模板

今天学习了主席树,我觉得我可以去黑入美国国防部的网络了。所谓主席树,它的真正含义和主席两个字完全没有联系。主席树的作用是保存历史版本的线段树。不知为何我对这张图片情有独钟。划圈的部分是单点修改后的新的线段树。下面代码是一道主席树模板题,求区间第k小的数的值。此题思路就是每次插入一个数,就新建一颗权值线段树,变成主席树。输入x到y求第k小的数,就是用第y个版本的线段树减去第x-1个版...

2020-01-19 15:10:43 101

原创 网络流dinic模板

奥里给,如果下次看自己解释的这篇dinic看不懂的时候,告诉自己,网络流是板子,会建图就行。const int N=210000;struct node{ int to,cap,next;} p[N*10];int dis[N];int head[N];int cnt=-1;queue<int> q;void add(int from,int to,int c...

2019-11-29 16:27:14 99

原创 ## 覆盖的面积 HDU - 1255(扫描线进阶)

覆盖的面积 HDU - 1255(扫描线进阶)//#pragma GCC optimize(3,“Ofast”,“inline”)//#include<unordered_map>#include#include#include#include#include#include#include#include#include#include#include#i...

2019-11-17 12:03:26 127

原创 字典树模板

字典树模板struct node{int flag;int id;node *next[27];node(){flag=0;id=0;memset(next,0,sizeof(next));}}root;int inserts(char *w){node *p=&root;for(int i=0;w[i]!=’\0’;i++){int tmp=w[i]-‘...

2019-11-14 15:50:28 83

原创 P3387 【模板】缩点 tarjan+dp+topo

P3387 【模板】缩点 tarjan+dp+topo//#pragma GCC optimize(3,“Ofast”,“inline”)#include#include#include#include#include#include#include#include#include#include#include#include#include<unordered...

2019-11-11 14:46:39 112

原创 线性筛(素数筛加欧拉筛)

void getprime(){memset(prime,0,sizeof(prime));memset(isprime,1,sizeof(isprime));for(int i=2;i<=n;i++){if(isprime[i])prime[num++]=i;for(int j=0;j<num&&iprime[j]<=n;j++){ispri...

2019-11-02 16:43:38 374

原创 快速模幂

快速模幂ll qpow(ll a,ll b,ll p){ll ans=1%p;while(b!=0){if(b&1){ans=(ans%pa%p)%p;}a=(aa)%p;b>>=1;}return ans;}int main(){ll a,b,p;cin>>a>>b>>p;printf("%lld\n"...

2019-11-01 13:58:52 156

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除