自定义博客皮肤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.

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

原创 【持续更新】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 420

原创 【持续更新】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 397

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

定义又称母函数是一种形式幂级数,其每一项的系数可以提供关于这个序列的信息。使用母函数解决问题的方法称为母函数方法。母函数可分为很多种,包括普通母函数、指数母函数、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 426

原创 【容斥】【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 593

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

pid=1243。

2023-12-12 22:00:36 960

原创 字符串板子代码暂存

【代码】SAM代码暂存。

2023-10-18 11:44:08 152

原创 【学习笔记】杜教筛

φ∗1idφ∗idn。

2023-10-11 21:59:54 626

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

退役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 317

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

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

2023-09-25 23:08:33 312

原创 【模板】2-SAT

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

2023-09-24 23:20:03 90

原创 【c++】对拍

2022-07-06 22:29:52 377 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 889 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 416

原创 【模板】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 238 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 228

原创 【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 464

原创 【模板】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 314

原创 【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 276

原创 【多项式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 277

原创 【容斥、二项式反演】【洛谷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 354

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

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

2021-01-16 12:48:53 384 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 381

原创 【多项式开根+求逆】【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 250

原创 【模板】多项式指数函数(多项式 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 659

原创 【模板】多项式对数函数(多项式 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 375

原创 【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 338

原创 【模板】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 283

原创 【模板】原根

题目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 381

原创 【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 263

原创 【整体二分】[ZJOI2013]K大数查询

题目https://darkbzoj.tk/problem/3110思路这题有好几种做法,我选择整体二分。整体二分就是对于所有询问二分答案,分别加入对其有贡献的区间。对于一个修改操作,如果对当前答案有贡献,就在线段树上做区间加对于查询操作,在线段树上查询看看是否大于mid来确定放在哪边。代码#include<bits/stdc++.h>#define ll long long#define lc p<<1#define rc p<<1|1using

2021-01-05 09:05:38 278

原创 【模板】【kruskal重构树】【NOI2018】归程

题目https://uoj.ac/problem/393思路关于kruskal重构树的blog:https://www.cnblogs.com/zwfymqz/p/9683523.html这里我们讲一下这题怎么做:先构出kruskal重构树,显然如果一个节点的水位大于p,子树内任意两点可以不花代价互相到达。于是我们要求出深度最浅且水位不超过p的点,倍增就行。然后预处理每个点到1号点的距离,dij代码#include<bits/stdc++.h>#define ll long

2021-01-04 19:42:25 236

原创 【洛谷P4196】[CQOI2006]凸多边形 /【模板】半平面交

题目https://www.luogu.com.cn/problem/P4196思路求半平面交:先极角排序,如果极角相同,保留最左边那一个维护一个双端队列,考虑加入一个半平面:while deque顶端的两个半平面的交点在当前半平面外:删除deque顶端的半平面。while deque底部的两个半平面的交点在当前半平面外:删除deque底部的半平面。将新半平面加入deque顶端。去除多余的半平面:while deque顶端的两个半平面的交点在底部半平面外:删除de

2021-01-04 11:27:18 319

原创 【线性基】【洛谷P4151】[WC2011]最大XOR和路径

题目https://www.luogu.com.cn/problem/P4151思路线性基神题首先我们发现我们走出的路径去掉走两次的边之后一定是一条链和若干个环(要联通),并且对于一个环,我们可以选或者不选。容易想到线性基。把所有的环DFS出来,丢进线性基里面,那么最后查询以这条链为基础查询就行。现在的问题是怎么找出那条链?其实随便找一条就行证明:如果A比B优,我们选了B,那么A和B一定构成一个环。只要BxorAB就变成A啦代码#include<bits/stdc++.h>#

2021-01-03 18:56:02 284

原创 【CF226C】Anniversary

题目题目描述现在有 nn 枚金币,它们可能会有不同的价值,第 ii 枚金币的价值为 v_ivi​ 。现在要把它们分成两部分,要求这两部分金币数目之差不超过 11,问这样分成的两部分金币的价值之差最小是多少?输入格式本题单个测试点内有多组测试数据。输入的第一行是一个正整数 TT,表示该测试点内数据组数。对于每组测试数据的格式为:每组测试数据占两行。第一行是一个整数 nn,表示金币的个数。第二行有 nn 个整数,第 ii 个整数表示第 ii 个金币的价值 v_ivi​ 。输出格

2020-12-27 23:52:26 240

原创 【CF1025D】Recovering BST

题目题意翻译$$ 仓鼠 Dima\textsf{Dima}Dima 把一颗二叉排序树的所有边都吃掉了!!不仅如此,这棵树的所有顶点都被这只珂爱的仓鼠搞乱了。 不过他还是知道这棵树的一些性质……那就是任意两个直接相连的点之间的权值最大公约数不是 11 。为了不让打造这棵树的 \textsf{Andrew}Andrew 生气,还请你帮帮 \textsf{Dima}Dima :若可以按上述性质修复这颗二叉排序树,输出Yes;否则输出No。 树上点数 2 \leq n \leq 7002≤n≤700 ;点权 2

2020-12-26 16:14:56 233

原创 【CF45G】 Prime Problem

题目题意翻译将1到n分成若干组数,要求每组数的和均为质数,若存在一种分配方式,输出每个数所在的组的编号,有多组解输出任意一组解,若不存在,输出-1感谢@he_____he 提供的翻译题目描述In Berland prime numbers are fashionable — the respectable citizens dwell only on the floors with numbers that are prime numbers. The numismatists value par

2020-12-26 12:48:19 491 1

原创 【构造+拓扑序】【JZOJ5405】Permutation

题目Description你有一个长度为n 的排列P 与一个正整数K你可以进行如下操作若干次使得排列的字典序尽量小对于两个满足|i-j|>=K 且|Pi-Pj| = 1 的下标i 与j,交换Pi 与PjInput第一行包括两个正整数n 与K第二行包括n 个正整数,第i 个正整数表示PiOutput输出一个新排列表示答案输出共n 行,第i 行表示PiSample Input8 34 5 7 8 3 1 2 6Sample Output12675348Data

2020-12-19 16:31:37 326 1

原创 [CTSC2008]网络管理

题目题目描述M 公司是一个非常庞大的跨国公司,在许多国家都设有它的下属分支机构或部门。为了让分布在世界各地的 nn 个部门之间协同工作,公司搭建了一个连接整个公司的通信网络。该网络的结构由 nn 个路由器和 n-1n−1 条高速光缆组成。每个部门都有一个专属的路由器,部门局域网内的所有机器都联向这个路由器,然后再通过这个通信子网与其他部门进行通信联络。该网络结构保证网络中的任意两个路由器之间都存在一条直接或间接路径以进行通信。高速光缆的数据传输速度非常快,以至于利用光缆传输的延迟时间可以忽略。但是由

2020-12-12 16:53:13 370

原创 【CF1343E】 Weights Distributing

题目题目描述You are given an undirected unweighted graph consisting of nn vertices and mm edges (which represents the map of Bertown) and the array of prices pp of length mm . It is guaranteed that there is a path between each pair of vertices (districts).Mik

2020-12-01 21:52:32 282

原创 【信奥题库 NOIP 2020 在线模拟赛 T4】三元组

题目https://www.oitiku.com/simulate-contest/5/19思路其实这东西是选k次子矩阵的方案数所以就可以化成隔板法∑x=1n∑y=1mC(n,x)C(m,y)C(2k−1,x−1)C(2k−1,y−1)\sum_{x=1}^{n}\sum_{y=1}^{m}C(n,x)C(m,y)C(2k-1,x-1)C(2k-1,y-1)x=1∑n​y=1∑m​C(n,x)C(m,y)C(2k−1,x−1)C(2k−1,y−1)把一部分单独拎出来∑x=1nC(n,x)C(2

2020-11-29 21:33:03 529

空空如也

空空如也

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

TA关注的人

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