自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 准备学习内容

准备学习内容 倍增 LCA KMP Trie树 AC自动机 匹配 矩阵乘积 主席树 平衡树 数论

2021-05-09 10:11:20 132

原创 未完成的任务

未完成

2020-08-23 10:48:28 1165 2

原创 洛谷 P3380 模板 二逼平衡树 线段树套平衡树

线段树套平衡树

2022-06-08 21:33:13 201

原创 洛谷P3369 模板 普通平衡树 (Treap)

Treap

2022-06-07 21:01:58 175

原创 POJ 1195 Mobile phones (二维线段树)

二维线段树

2022-06-07 20:53:56 169

原创 洛谷P3810 三维偏序(二维线段树)

二维线段树

2022-06-07 20:52:10 182

原创 C++板子

GAUSS#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#define exp 1e-8#define RE register#define IL inlineusing namespace std;double f[110],a[110][110];bool flag[110],light[110];struct formula{ double s

2021-11-19 22:42:52 523 1

原创 带权二分图最佳匹配(KM)

带权二分图最佳匹配(KM)#include<iostream> #include<cstdio>#include<cstring>using namespace std;int head[1010],to[100010],w[1010][1010],nxt[100010],link[100010],dis[100010],tot=0;bool vis[1010];int INF=0x7f7f7f7f;void add(int u,int v){ to[

2021-06-22 21:22:08 263

原创 二分图匹配

二分图匹配#include<iostream> #include<cstdio>#include<cstring>using namespace std;int head[1010],to[100010],nxt[100010],link[100010],tot=0;bool vis[1010];void add(int u,int v){ to[++tot]=v,nxt[tot]=head[u],head[u]=tot; return;}bool

2021-06-22 20:06:57 102

原创 YBT金牌导航元素

YBT金牌导航元素#include<iostream> #include<cstdio>#include<algorithm>using namespace std;struct jgt{ long long id,magic;}a[1010];long long d[64];bool cmp(jgt t1,jgt t2){ return t1.magic>t2.magic;}bool add(long long x){ for(lo

2021-06-22 18:22:58 209

原创 Dinic

Dinic#include<iostream>#include<cstdio>#include<cstring>#include<queue>using namespace std;const long long N=210,E=10010;long long head[N],to[E],nxt[E],val[E],dep[N],cur[N],gap[N],t,n,tot=1;bool vis[N];void add(long long u,

2021-06-22 12:40:25 110

原创 YBT高效进阶网络流求最大流

YBT高效进阶网络流求最大流#include<iostream>#include<cstdio>#include<cstring>#include<queue>using namespace std;const long long N=210,E=10010;long long head[N],to[E],nxt[E],val[E],dep[N],cur[N],t,n,tot=1;bool vis[N];void add(long long

2021-06-22 10:47:32 112

原创 YBT金牌导航Manacher不交回文串

Manacher#include<iostream> #include<cstdio>using namespace std;char str[],s[];long long pre[],suf[],sum[],p[],len;void init(){ str[0]='@'; for(i=1;i<=(len<<1);++i) { } str[len+1]='%'; return;}void Manacher(){ long l

2021-06-21 18:46:20 121

原创 YBT金牌导航彩灯

YBT金牌导航彩灯#include<iostream> #include<cstdio>using namespace std;long long d[110],mods=2008;void add(long long x){ long long i; for(i=63;i>=0;--i) if(x&(1ll<<i)) if(d[i])x^=d[i]; else{d[i]=x;return;} return;}int m

2021-06-21 18:32:19 106

原创 YBT高效进阶 4.6.2 洛谷P1081 开车旅行(最详细)

YBT高效进阶 4.6.2 洛谷P1081 开车旅行TITLE题目描述小A和小B决定利用假期外出旅行,他们将想去的城市从1到n编号,且编号较小的城市在编号较大的城市的西边,已知各个城市的海拔高度互不相同,记城市i的海拔高度为h_i城市i和城市j之间的距离d_{i,j},恰好是这两个城市海拔高度之差的绝对值,即 di,j=∣hi−hj∣d_{i,j}=|h_i-h_j|di,j​=∣hi​−hj​∣旅行过程中,小A和小B轮流开车,第一天小A开车,之后每天轮换一次。他们计划选择一个城市s作为起点,一直向

2021-06-13 16:37:33 234 3

原创 YBT高效进阶 5.3.2 区间圆数

YBT高效进阶 5.3.2 区间圆数思路预处理 不考虑前导0设f[i][j]表示i位中j个0f[i][j]=f[i-1][j-1]+f[i-1][j]f[i][0]=1特殊处理前导0用数位DPCODE#include<iostream>#include<cstdio>#include<cstring>using namespace std;int f[51][51];bool s[51];int digitDP(int x){ if(!x

2021-06-12 19:32:53 147

原创 YBT高效进阶 5.3.3 数字计数

YBT高效进阶 5.3.3 数字计数思路注意用unsigned long long用二维表示状态:当前位,已经找到的个数如果枚举的数==要找的数,没有前导0,ans+1CODE#include<iostream>#include<cstdio>#include<cstring>using namespace std;unsigned long long f[110][110],s[110],power[110];unsigned long long

2021-06-12 17:16:57 162

原创 YBT高效进阶_5.3.1 B数计数

YBT高效进阶_5.3.1 B数计数思路用填数法一位一位看用3维表示状态:当前位,余数,含有13的状态CODE#include<iostream>#include<cstdio>#include<cstring>using namespace std;int f[11][13][3],power[14],n;int digitDP(int dep,int mods,int digit,bool limit){ if(!limit&&

2021-06-12 16:43:33 197 1

原创 YBT高效进阶 6.2.5 余数之和

YBT余数求和思路(n,k)(n,k)(n,k)=∑i=1nk mod i=\sum_{i=1}^nk\bmod i=∑i=1n​kmodi=∑i=1nk−⌊ki⌋=\sum_{i=1}^nk-\left\lfloor \dfrac ki \right\rfloor=∑i=1n​k−⌊ik​⌋=n∗k−∑i=1n⌊ki⌋=n*k-\sum_{i=1}^n\left\lfloor \dfrac ki \right\rfloor=n∗k−∑i=1n​⌊ik​⌋分块i∈[x,⌊k⌊kx⌋⌋]时⌊ki

2021-06-10 13:59:53 149

原创 标程_字符串算法

标程_字符串算法Hash一维hash用一个数表示一个字符串或一个数组看做一个n进制数转换chen二维hashhash表(动态)hash静态KMPTrieAC自动机

2021-06-09 22:33:45 94

原创 YBT高效进阶

easyDP图论345studykmp 1prime组合 1数据结构

2021-06-01 21:27:59 171

原创 洛谷P4777【模板】扩展中国剩余定理(EXCRT)

洛谷P4777【模板】扩展中国剩余定理(EXCRT)TITLE思路中国剩余定理CRTx≡a1(modm1)x\equiv a_1\pmod{m_1}x≡a1​(modm1​)………………x≡an(modmn)x\equiv a_n\pmod{m_n}x≡an​(modmn​)gcd⁡(mi,mj)=1,(i≠j)\gcd(m_i,m_j)=1,(i\not=j)gcd(mi​,mj​)=1,(i​=j)扩展中国剩余定理EXCRTx≡a1(modm1)x\equiv a_1\pmod{m

2021-05-22 08:21:06 147

原创 洛谷P3868 [TJOI2009]猜数字

洛谷P3868 [TJOI2009]猜数字TITLE思路中国剩余定理(CRT)用龟速乘,注意a[i]=(a[i]%m+m)%mCODE#include<iostream> #include<cstdio>using namespace std;void exgcd(long long a,long long b,long long &x,long long &y){ if(!b){x=1,y=0;return;} exgcd(b,a%b,x,y

2021-05-21 22:07:12 133

原创 洛谷P1495 【模板】中国剩余定理(CRT)/曹冲养猪+扩展欧几里得求逆元

P1495 【模板】中国剩余定理(CRT)/曹冲养猪TITLE思路fadjgoajdfiajbjaorwdCODE

2021-05-21 20:54:19 148

原创 洛谷P1447 [NOI2010] 能量采集

洛谷P1447 [NOI2010] 能量采集TITLE思路∑i=1n∑j=1m2gcd⁡(i,j)−1=−n∗m+2∑i=1n∑j=1mgcd⁡(i,j)\sum_{i=1}^n\sum_{j=1}^m2\gcd(i,j)-1=-n*m+2\sum_{i=1}^n\sum_{j=1}^m\gcd(i,j)∑i=1n​∑j=1m​2gcd(i,j)−1=−n∗m+2∑i=1n​∑j=1m​gcd(i,j)∵∑k∣nϕ(k)=n\because \sum_{k|n}\phi(k)=n∵∑k∣n​ϕ(k)

2021-05-20 17:20:13 108

原创 P5431 【模板】乘法逆元2

P5431 【模板】乘法逆元2TITLE思路线性求逆元预处理前缀积,后缀积扩展欧几里得算出所有数的积的逆元CODE#include<iostream> #include<cstdio>using namespace std;long long a[5000010],b[5000010],c[5000010];inline long long read()//快读 { long long ans=0; char u=getchar(); while (u&

2021-05-20 16:06:48 95

原创 洛谷P1516 青蛙的约会(扩展欧几里得EXGCD)

洛谷P1516 青蛙的约会TITLE思路ax+by=c存在整数解当且仅当gcd(a,b)|c扩展欧几里得算法实现求解二元一次不定方程的整数解若求出ax’+by’=gcd(a,b),那么将等式两边变为原来的c/gcd(a,b)倍long long exgcd(long long a,long long b,long long &x,long long &y){ if(!b){x=1,y=0;return a;} long long ans=exgcd(b,a%b,x,y),t

2021-05-19 14:05:09 122

原创 洛谷P4139 上帝与集合的正确用法

洛谷P4139 上帝与集合的正确用法TITLE思路欧拉定理ab≡abmod  ϕ(m)+ϕ(m)a^b \equiv a^{b\mod \phi(m)+\phi(m)}ab≡abmodϕ(m)+ϕ(m)代入公式计算即可若ab,b<=2,return 0否则return 2ϕ(x)+函数自己(ϕ(x))mod  b2^{\phi(x)+函数自己(\phi(x))}\mod b2ϕ(x)+函数自己(ϕ(x))modblong long ExEulerTheorem(long long x

2021-05-18 21:24:11 116

原创 洛谷P5253 [JSOI2013]丢番图

洛谷P5253 [JSOI2013]丢番图TITLE思路1/x+1/y=1/n1/x+1/y=1/n1/x+1/y=1/n化简得(x−n)(y−n)=n2化简得(x-n)(y-n)=n^2化简得(x−n)(y−n)=n2ans=(n2的因数个数+1)/2ans=(n^2的因数个数+1)/2ans=(n2的因数个数+1)/2ans=(∏(n的每个质因数的指数∗2+1)+1)/2ans=(\prod{(n的每个质因数的指数*2+1)}+1)/2ans=(∏(n的每个质因数的指数∗2+1)+1)/2

2021-05-18 21:11:05 119

原创 洛谷P5495 Dirichlet 前缀和

洛谷P5495 Dirichlet 前缀和TITLE思路∵质数唯一分解\because 质数唯一分解∵质数唯一分解∴每个数对倍数产生贡献\therefore 每个数对倍数产生贡献∴每个数对倍数产生贡献先线性筛出质数从小到大计算 每个数对倍数产生贡献贡献累加CODE#include<iostream> #include<cstdio>using namespace std;const int maxn=20000000;unsigned int seed,a[

2021-05-17 17:28:55 78

原创 洛谷P3383 【模板】线性筛素数

洛谷P3383 【模板】线性筛素数TITLE思路每个合数只被筛一次for(b[1]=1,i=2;i<=n;++i){ if(!b[i])z[++tot]=i;//标记质数 for(j=1;j<=tot&&i*z[j]<=n;++j)//用每个质数*i筛合数 { b[i*z[j]]=1;//标记为合数 if(!(i%z[j]))break;//如果(第j个质数)整除i,那么后面的数(=i*x)会被(第j个质数*x*(i/第j个质数))筛掉 }}

2021-05-17 17:21:26 128

原创 UVA12716 GCD等于XOR GCD XOR

UVA12716 GCD等于XOR GCD XORTITLE思路∵gcd⁡(i,j)≤i−j≤ixorj\because \gcd(i,j) \leq i-j \leq i xor j∵gcd(i,j)≤i−j≤ixorj要gcd(i,j)=ixorjgcd(i,j)=ixorjgcd(i,j)=ixorj所以gcd(i,j)=i−j=ixorjgcd(i,j)=i-j=ixorjgcd(i,j)=i−j=ixorjgcd(i,j)=gcd(i,i−j)=i−jgcd(i,j)=gcd(i,i-

2021-05-17 16:59:44 102

原创 YBT3.4.4 洛谷P3275 糖果_恒星的亮度

YBT3.4.4 洛谷P3275 糖果_恒星的亮度Title思路建图:1A<=B,B<=AA->B B->A边权02A+1<=BA->B边权13B<=AB->A边权04B+1<=AB->A边权15A<=BA->B边权0Tanjan缩点拓扑DP入度0的点f=1f[v]=max(f[u]+w,f[v]);w为该边边权ans=∑i=1总点数f[i]∗s[i]\sum _{i=1}^{总

2021-05-05 11:50:25 143

原创 YBT高效进阶3.4.3 洛谷P2272最大半连通子图

YBT高效进阶3.4.3 洛谷P2272最大半连通子图Title思路Tanjan缩点,拓扑DP第一问f[v]=f[u]+s[v],s[v]为缩点后每个点原来点的个数第二问(f[u]+s[v]>f[v])g[v]=g[u];(f[u]+s[v]==f[v])g[v]=(g[v]+g[u])%mods;CODE#include<iostream>#include<cstdio>#include<stack>#include<queue

2021-05-05 11:32:54 95

原创 YBT高效进阶3.4.1 洛谷P3387有向图缩点

YBT高效进阶3.4.1 洛谷P3387有向图缩点Title思路建图Tanjan缩点拓扑DP设f[i]为以i为终点的值f[v]=max(f[u]+s[v],f[v])ans=max(f[i])CODE#include<iostream>#include<cstdio>#include<stack>#include<queue>using namespace std;const long long maxn=200010;stru

2021-05-05 11:23:53 106 1

原创 洛谷P2746 POJ1236校园网Network of Schools

POJ 1236 Network of SchoolsTime Limit: 1000MSMemory Limit: 10000KDescriptionA number of schools are connected to a computer network. Agreements have been developed among those schools: each school maintains a list of schools to which it distributes sof

2021-05-04 20:38:42 117

原创 YBT高效进阶3.4.2 洛谷P2341 POJ2186受欢迎的牛Popular Cows

洛谷P2341 POJ2186受欢迎的牛Title思路缩点,如果出度为0的点唯一,ans=该点原始点数若出度为0的点有多个,ans=0缩点用Floyd or Tanjan or Topsort or KosarajuCODE#include<iostream> #include<cstdio>#include<stack>using namespace std;int dfn[50010],low[50010],col[50010],s[50010]

2021-05-04 20:28:04 115

原创 洛谷P1377树的序

洛谷P1377树的序Title思路4个数组保存一棵树2个保存左右儿子1个保存值1个保存指针CODE#include<iostream>#include<cstdio>#include<cstring>using namespace std;int a[100010][4];void DFS(int x){ if(x==0)return; cout<<x<<' '; if(a[x][2])DFS(a[x][2]);

2021-05-04 16:45:26 93

原创 洛谷P2258子矩阵

洛谷P2258子矩阵Title思路暴力选r行DP计算出分值设f[i][j]为选i*j的子矩阵的最小分值f[0][0]=0f[i][j]=min(f[i][j],f[i-1][k]+y[j]+x[k][j]);1<=i<=c,i<=j<=m,0<=k<jy为一行内的分值x为两列间的分值CODE#include<iostream>#include<cstdio>#include<cmath>#include&l

2021-05-04 16:05:21 119

原创 洛谷P1052 过河

洛谷P1052 过河Title思路缩短距离超过90就当90算设f[i]为到i的值f[0]=0f[i+j]=min(f[i+j],f[i]+i是否有石子)1<=i<=n+ts<=j<=t代码#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;long long a[210],b[2

2021-05-04 12:08:44 132

空空如也

空空如也

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

TA关注的人

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