自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Brute♂force

My name is van♂,I'm an artist, I'm a performance artist.

  • 博客(1197)
  • 收藏
  • 关注

原创 【持续更新】SA,SAM,manacher,回文树学习笔记

后缀数组功能将一个串ST所有后缀排序,并求出相邻排名后缀的LCPSA, rank, 基数排序倍增排序为了将从i开始的后缀排序,我们倍增长度t=1,2,4,8…,即我们考虑从每个i开始长度为2k的段,如果不足2k就到结尾为止。长度为1的段直接比较即可。为了比较两个长度为2k的段,我们只需要比较前一半(长度为2(k-1)的段)和后一半。因此,我们可以对于长度1,2,4,8…维护当前每一段的顺序,每次只需要利用前一次的结果进行双关键字排序即可。我们每次调用std::sort,复杂度O(nlog2n)

2020-08-18 22:52:00 452

原创 【持续更新】LCT学习笔记

前言之前没怎么打过LCT,这次来苏州集训乘机补一个坑LCT功能十分强大,它可以维护一个森林的一系列问题LCT的结构一句话来说,就是对于森林里的每棵树做轻重链剖分,每条重链用splay维护LCT基本操作Access这是LCT最关键的操作access(x)是把x弄到与根在同一个splay上的操作,也就是把x到根的虚边全部变实边过程大概是:将x splay到x所属平衡树的根令x的右儿子为x’(初始x’=NULL)这相当于把虚边边实边令x’=x x=fa[x]重复上述过程,直到跳到根上代

2020-08-17 16:42:43 433

原创 【持续更新】生成函数学习笔记

定义又称母函数是一种形式幂级数,其每一项的系数可以提供关于这个序列的信息。使用母函数解决问题的方法称为母函数方法。母函数可分为很多种,包括普通母函数、指数母函数、L级数、贝尔级数和狄利克雷级数。例题HDU1028可以看做每一个数都可以无限取于是生成函数为:(1+x+x2+x3….)(1+x2+x4+….)……(1+xn)#include<bits/stdc++.h>using namespace std;const int N=277;int f[N],g[N];int

2020-07-19 00:11:05 479

原创 【学习笔记】线段树分裂

有就应该有线段树分裂。它是线段树合并的逆过程。具体的,你需要以权值线段树中第 k 小的数为分界线,把线段树分成两半。

2024-09-19 15:50:58 423

原创 【学习笔记】线段树合并

一般来说,线段树会有On个节点。但是有的时候,整棵线段树就只进行了一次插入操作,这样只会有Ologn个节点。处理树上问题时,我们有时需要把儿子的信息合并到父亲节点。这个时候可以使用,常数小,但复杂度多一个log。或者,我们也可以使用线段树合并。

2024-09-15 10:50:49 1011

原创 【学习笔记】用线段树维护区间计数问题

简单的区间计数问题可能直接推式子就行了。但有些问题必须要数据结构维护。线段树就是一个比较好的处理区间的数据结构。

2024-08-09 17:11:16 749

原创 【主席树】CF786 C. Till I Collapse

考虑哪些点才会对答案有贡献:只有在询问区间内第一次出现的点才会有贡献。也就是说,假如我们询问的是。但是如果题目要求强制在线,我们就可以用主席树来解决。不难发现,这是一个经典的二维偏序问题。离线下来随便维护一下就行。上一次出现的位置,如果前面没出现过则等于 0。怎么样把它变成主席树上二分呢?如果直接维护区间内的不同颜色,将会很难维护。当左端点固定时,右端点可以用二分来确定。很显然,线段的个数是调和级数。,查询只需要查询根的范围在。,每一棵线段树对应一个。的位置才能产生贡献。

2024-08-05 23:37:06 546

原创 【学习笔记】后缀自动机(SAM)

对于一个子串ttt,它在原串sss里面的结束位置集合记为endpostendpos_tendpost​比如sabcbcs = abcbcsabcbctbct = bctbc,那么endpost24endpost​24(假设字符串从0开始编号)

2024-08-03 17:41:27 795

原创 【学习笔记】决策单调性优化DP

GDCPC还在发力,清华出题组出的牛客还是 4 题。这次没有min25筛,不然我能5题(bushi除了一道用 prufer 序列的恶心 DP 外,还有一道DP题是一个状态难想,并且还需要决策单调性优化的DP,被认为是偏简单的银牌题。

2024-08-02 21:58:02 949

原创 【学习笔记】子集DP

有一类问题和子集有关。给你一个集合S,令T为S的超集,也就是S所有子集的集合,求T中所有元素的和。

2024-07-24 21:16:11 1152 2

原创 【GDCPC2024】【min_25筛】J.另一个计数问题

所以我们只需要用 min25筛 求出质数的和还有平方和就可以啦。考场上的思路和正解差远了,属实是反演学魔怔了。是在整除分块中求过的,可以直接用。注意,不要跑两遍,会T。那么,答案就可以转换成。

2024-07-14 21:45:22 659

原创 【学习笔记】min_25筛

GDCPC2024出题人:出这道 min25 筛是给大家增加过题数的 [呲牙][大哭][呲牙][大哭]

2024-07-14 21:17:23 1306

原创 【SZUOJ】【高精度板子】E. 大整数计算(运算符重载)

被学校oj的高精度恶心到了,所以我觉得以后把它当板子。

2024-06-09 12:18:15 298

原创 【动态维护树的直径】【HBCPC2023】I. Colorful Tree

其实相当于是分别求黑色点和白色点所构成的树的直径。由于题目要给链染色,所以只能树剖+线段树维护。当两个连通块连在了一起,假设它们的直径是。,那么新连通块的直径一定是。白色的点倒过来求一遍即可。

2024-05-24 15:17:18 346

原创 【容斥】【CF1900D】Small GCD

求解下列式子:∑i=1n∑j=1i−1(ai,aj)×(n−i)\sum_{i=1}^n \sum_{j=1}^{i-1} (a_i,a_j)\times(n-i)i=1∑n​j=1∑i−1​(ai​,aj​)×(n−i)n≤8e4,ai≤1e5n≤8e4,a_i≤1e5n≤8e4,ai​≤1e5写反演写魔怔了,所以上来直接一个反演最后的式子是这样的∑i=1n(n−i)∑d∣aiϕ(d)cntd,i\sum_{i=1}^n (n-i) \sum_{d|a_i} \phi(d)cnt_{d,i}i=1∑

2024-02-05 12:43:02 644

原创 【CCPC2023深圳】相似基因序列问题

pid=1243。

2023-12-12 22:00:36 1067

原创 字符串板子代码暂存

【代码】SAM代码暂存。

2023-10-18 11:44:08 290

原创 【学习笔记】杜教筛

φ∗1idφ∗idn。

2023-10-11 21:59:54 665

原创 【学习笔记】莫比乌斯反演

退役OIer回来受虐啦μ(x)={1x>1(−1)nx=∏i=1nPi0otherwise\mu(x) = \begin{cases} 1 & x > 1 \\ (-1)^n & x = \prod _ {i=1} ^ {n} P_{i}\\ 0 & otherwise \end{cases}μ(x)=⎩⎨⎧​1(−1)n0​x>1x=∏i=1n​Pi​otherwise​φ(n)=∑i=1n [gcd(i,n)=1]\varphi(n)=\sum_{i=1}^{n}\ [gcd(i,n)=1]φ(n)=i

2023-10-08 20:38:15 367

原创 【2-SAT】【前缀和优化建图】【ICPC网络赛第二场】C. Covering

分成了若干个集合,每个集合只能选1个点。但如果用2-SAT做就会有。现在我们额外开2*n个点,分别用于前缀和后缀。就一定要选,2-SAT可以很好地解决。条边,所以需要考虑前缀和优化建图。可以发现,我们这个图和原图是等价的。对于限制2,可以发现,如果。对于限制1,其实就是把。

2023-09-25 23:08:33 440

原创 【模板】2-SAT

有n个布尔变量x1​∼xn​,另有m个需要满足的条件,每个条件的形式都是 「xi​为truefalse或xj​为truefalse比如 「x1​为真或x3​为假」、「x7​为假或x2​为假」。2-SAT 问题的目标是给每个变量赋值使得所有条件得到满足。

2023-09-24 23:20:03 124

原创 【c++】对拍

2022-07-06 22:29:52 427 1

原创 【gym102978H】【xjoi省选模拟】Harsh Comments

题目https://codeforces.com/gym/102978/problem/H思路做法和[PKUWC2018]猎人杀类似,且这题不需要多项式科技。我们发现答案只与 bbb 的大小有关,而对于一个 bbb 不产生贡献的条件是在所有 AAA 删掉之后删。且由于期望的线性性,我们只需要考虑 M=1M=1M=1 的情况,然后把它们的贡献加起来就好。然而我们发现这个东西并不好算,但是我们可以很容易算出 bbb 在所有 AAA 删掉之前删的概率:bb+∑i=1nai\frac{b}{b+\sum

2021-03-04 09:52:52 965 1

原创 【AtCoder nomura2020 F】【xjoi省选模拟】Sorting Game

题目https://atcoder.jp/contests/nomura2020/tasks/nomura2020_f?lang=en思路考虑给你一个序列如何判断合不合法。一个很显然的结论(1):如果存在 i<ji<ji<j且ai>aja_i>a_jai​>aj​且 aia_iai​ 和 aja_jaj​ 不相同的位数>1,那么这个序列就不合法。另外一个结论(2)是:捣乱的那个人只会从高位到低位删。证明:首先我们只需要存在一对逆序对不满足结论(1)这个

2021-03-01 19:52:28 457

原创 【模板】excrt

题目https://www.luogu.com.cn/problem/P4777思路发现之前忘记写博客了https://www.luogu.com.cn/blog/niiick/solution-p4777代码#include<bits/stdc++.h>#define ll long longusing namespace std;const int N=1e5+77;ll a[N],b[N];int n;ll mul(ll x,ll y,ll mod){ retur

2021-02-03 17:49:51 265 1

原创 【模板】点分治

题目https://www.luogu.com.cn/problem/P4178思路https://www.cnblogs.com/bcoier/p/10526832.html代码#include<bits/stdc++.h>using namespace std;const int N=1e5+77;struct E{ int to,next,w;}e[N<<1];int f[N],siz[N],dis[N],yjy[N],n,m,k,rt,ans,ls[N

2021-01-25 15:31:54 261

原创 【xjoi 2021省选训练23】【CF346E】Doodle Jump

题目https://www.luogu.com.cn/problem/CF346E思路考试的时候花了3h没推出来(其实已经很接近了)首先有一个比较显然的结论:如果一个数落在 (p−a∗(p/a),n](p-a*(p/a),n](p−a∗(p/a),n] 上,那么这个数是没用的,容易证明前面的最大距离一定大于它。然后我们发现,如果我们走完一个周期,每次的起始位置变化是有规律的。可以发现,走完一个周期,它的起始位置会加上 a−(p mod a)a-(p\ mod\ a)a−(p&n

2021-01-22 19:00:21 502

原创 【模板】Pollard-Rho算法

题目https://www.luogu.com.cn/problem/P4718思路真的是阴间卡常模板题blog代码#include<bits/stdc++.h>#define ll long long#define ld long double#define ull unsigned long longusing namespace std;int T;ll ans,n;inline ll mul(ll x,ll y,ll p){ ll yjy=(ld)x/p*y

2021-01-21 15:49:12 345

原创 【wqs二分】【洛谷P4383】[八省联考2018]林克卡特树

题目https://www.luogu.com.cn/problem/P4383思路先考虑60分DP可以发现删完边后面那个操作是没什么意义的。题意转换成将一棵树分成k+1个联通块,其直径之和的最大值那么考虑设 fi,jf_{i,j}fi,j​ 为以 iii 为根的子树选了 jjj 条链的最大值。但是发现这样转移不了。考虑一下链的性质,对于每个点,它的度数最多为2,所以我们在前面加多一维表示度数。转一个时候枚举度数暴力转移就好啦。然后……好像状态不能再减少了呢……那只能考虑单调性了。假如你

2021-01-20 15:35:51 326

原创 【多项式ln+exp】付公主的背包

题目https://www.luogu.com.cn/problem/P4389思路https://www.luogu.com.cn/blog/tbr-blog/solution-p4389代码#include<bits/stdc++.h>#define ll long longusing namespace std;const int N=4e5+77,mod=998244353;const ll g=3;int r[N];ll a[N],b[N],c[N],ia[N],

2021-01-18 20:09:18 307

原创 【容斥、二项式反演】【洛谷P4831】【xjoi2021省选训练22】Scarlet loves WenHuaKe

题目https://www.luogu.com.cn/problem/P4831思路不会有人用多项式吧(题目转换:将 1..m1..m1..m 各 222 个(表示纵坐标),填入 nnn 对无序二元组(表示行),且二元组内两数不同令 fn,mf_{n,m}fn,m​ 为答案, gn,mg_{n,m}gn,m​ 为 1..m1..m1..m 各有 222 个,放进 2n2n2n 个格子的方案数。先思考 g的计算:考虑选用了 n−in-in−i 对一样的数字,然后剩下的位置要从 m−n−im-n-i

2021-01-18 15:57:40 390

原创 【归纳总结】连续3次比赛低分——考试策略

今天已经是第3次比赛考这么低分了,我实在找不出什么理由借口来混过去了,所以有了这篇总结。失分原因总结了一下这几次,发现我好像都是想推某难题(看起来不难)的结论然后导致一些比较容易推的东西不够时间写,加上我调试本来就慢,导致最后没拿完应该拿的分。解决办法练习方面可以练一些数据结构题,练一些要考虑的细节比较多的题。这样有助于增强自己的调试能力(虽然可能会很自闭,但总比比赛的时候自闭好)还有就是多做CF的题,增强自己的推导能力(最好能做到每场比赛都保持那次差点打到rank6那次的水平)策略方面一道

2021-01-16 12:48:53 410 5

原创 【普通生成函数】[集训队作业2013]城市规划(简单有标号无向连通图计数)

题目https://www.luogu.com.cn/problem/P4841思路设 f(n)f(n)f(n) 为 nnn 个点的简单有标号无向连通图数目,g(n)g(n)g(n) 为简单有标号无向图数目。那么显然有g(n)=2Cn2=∑i=1nCn−1i−1f(i)g(n−i)g(n)=2^{C_n^2}=\sum_{i=1}^nC_{n-1}^{i-1}f(i)g(n-i)g(n)=2Cn2​=i=1∑n​Cn−1i−1​f(i)g(n−i)把 Cn−1i−1C_{n-1}^{i-1}Cn−1

2021-01-15 19:13:08 407

原创 【多项式开根+求逆】【CF438E】The Child and Binary Tree

多项式开根和exp大同小异F2(x)≡A(x) (mod xn)F^2(x)\equiv A(x)\ (mod\ x^n)F2(x)≡A(x) (mod xn)G(F(x))=F2(x)−A(x)G(F(x))=F^2(x)-A(x)G(F(x))=F2(x)−A(x)G′(F(x))=2F(x)G'(F(x))=2F(x)G′(F(x))=2F(x)套牛顿迭代F(x)=F0(x)−G(F0(x))G′(F0(x))=F02(x)−A(x)2F0(x)F(

2021-01-15 15:50:31 277

原创 【模板】多项式指数函数(多项式 exp)

题目https://www.luogu.com.cn/problem/P4726思路前置技能:多项式ln 泰勒展开 牛顿迭代好的,相信大家对牛顿迭代了解已经很透彻了,这里还是给出结论:若G(F(x))≡0 (mod xn)G(F(x))\equiv0\ (mod \ x^n)G(F(x))≡0 (mod xn) 其中 G(x)G(x)G(x) 是给定的多项式,那么 F(x)≡F0(x)−G(F0(x))G′(F0(x)) (mod xn)

2021-01-14 16:03:21 721

原创 【模板】多项式对数函数(多项式 ln)

题目https://www.luogu.com.cn/problem/P4725思路令 f(x)=ln(x)f(x)=ln(x)f(x)=ln(x)则G(x)=ln(F(x))=f(F(x))G(x)=ln(F(x))=f(F(x))G(x)=ln(F(x))=f(F(x))两边同时求导G′(x)=f′(F′(x))=f′(F(x))F′(x)G'(x)=f'(F'(x))=f'(F(x))F'(x)G′(x)=f′(F′(x))=f′(F(x))F′(x)由ln′(x)=1xln'(x)=\f

2021-01-14 10:58:23 447

原创 【NTT】【JZOJ 5019】【xjoi2021省选训练17】寻找规律

题目https://dev.xjoi.net/contest/1647/problem/2思路多项式好题。首先考虑如果没有旋转操作怎么做。如果 k>nk>nk>n 那么无论怎么样都是合法的,那么直接输出0。考虑 k<=nk<=nk<=n我们定义 A,BA,BA,B 两个多项式相似当且仅当存在一个最高次数为 kkk 的多项式满足 P(x)≡ai−bi(mod m)P(x)\equiv a_i-b_i(mod\ m)P(x)≡ai​−bi​(mod&n

2021-01-11 16:15:11 362

原创 【模板】Pólya 定理

题目https://www.luogu.com.cn/problem/P4980思路看了一晚上的群论,也就记住了前面几条定理和结论……还是先写一下结论吧:∣X/G∣=1∣G∣∑g∈GXg|X/G|=\frac{1}{|G|}\sum_{g∈G}X^g∣X/G∣=∣G∣1​g∈G∑​Xg其中, gxg^xgx 为 XXX 在 ggg 作用下的不动点的数量说人话就是:XXX 在群 GGG 作用下的等价类总数等于每一个 ggg 作用于 XXX 的不动点的算数平均值。​然后我们可以把这个东西改写一

2021-01-07 20:58:59 345

原创 【模板】原根

题目https://www.luogu.com.cn/problem/P6091思路首先引入阶的概念:设 m>1m>1m>1,且 gcd(a,m)=1gcd(a,m)=1gcd(a,m)=1,那么使得 ar≡1(mod m)a^r≡1(mod \ m)ar≡1(mod m) 成立的最小的正整数 rrr 称为 aaa 对模 mmm 的阶,记为 δm(a)\delta_m(a)δm​(a)性质1:若 m>1m>1m>1 并且 gcd(a,m)=1

2021-01-07 16:13:40 428

原创 【SAM】[AHOI2013]差异

题目https://www.luogu.com.cn/problem/P4248思路考虑建SAM根据定义,两个点在SAM上的parent树的LCA即为其LCS的距离,由于人以两个子串的LCS=任意两个字串的LCP,所以不用反过来插入(当然反过来也行)所以我们在SAM上做DP,维护一下子树的size,计算这条边经过多少次代码#include<bits/stdc++.h>#define ll long longusing namespace std;const int N=1e6

2021-01-06 19:43:39 302

空空如也

空空如也

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

TA关注的人

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