自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 任意模数NTT 学习笔记

FFT可以用来快速计算卷积,有时候出题人会给出像998244353之类的良心模数,那么我们NTT就好了。但是有些毒瘤偏不,他们不但给了模数,他们还给了不可以被拆成x∗2k+1x*2^k+1x∗2k+1形式的模数这个时候就需要一些黑科技了。拆系数FFT嗯,不能边NTT边取模怎么办呢?那我们就把它直接FFT完了再取模高兴地写完代码一交,WA到自闭,额,好像溢出了,算一下最大值np2=102...

2020-09-10 18:56:42 83

原创 hdu 6791 Tokitsukaze, CSL and Palindrome Game(回文自动机+树上倍增+hash)

题目链接这个题和CTSC2006 歌唱王国 很像根据一些鬼畜的概率生成函数我们可以推出E(x)=∑i=1len[s[1..i]=border]∗miE(x)=\sum_{i=1}^{len}[s[1..i]=border]*m^iE(x)=∑i=1len​[s[1..i]=border]∗mi其中m是字符集大小对于本题而言,m=26然后可以感受到border序列的字典序决定了输赢(第i位有则(1~i-1)的和都无法左右答案)所以串长不一样肯定是长的赢串长相等的话问题就相当于比较s[a…b]与

2020-09-09 12:51:43 27

原创 洛谷 P4707 重返现世(kth-max)

题目链接min-max进行一波扩展可以查询kth-maxmin-max看这里同样设一个容斥函数kth−max{S}=∑T⊆SF(∣T∣)min{T}kth-max\{S\}=\sum_{T\subseteq S}F(|T|)min\{T\}kth−max{S}=∑T⊆S​F(∣T∣)min{T}还是一样的列出每个min的出现次数F(x)=∑i=0x(xi)f(i+1)F(x)=\sum_...

2019-04-08 18:42:11 94

原创 洛谷 P3175 [HAOI2015]按位或(FMT+minmax容斥)

题目链接minmax容斥又称最值反演,是一种针对集合min->max或者max->min的反演结论公式为max{S}=∑T⊆S(−1)∣T∣+1min{T}max\{S\}=\sum_{T\subseteq S}(-1)^{|T|+1}min\{T\}max{S}=∑T⊆S​(−1)∣T∣+1min{T}min{S}=∑T⊆S(−1)∣T∣+1max{T}min\{S\}=\s...

2019-04-06 09:08:23 174

原创 洛谷 P4630 [APIO2018] Duathlon 铁人两项(圆方树)

题目链接这题一直忘做了考虑只是一棵树的情况,我们可以枚举中点,显然每个点作为中点产生的贡献就是经过它的所有路径的条数,这是一个很简单的树型DP那么对于无向图而言,我们只要建出圆方树,就可以跑同样思路的树型DP,我们对于方点记录它所表示的点双的大小,因为两个点之间路径经过的任意一个点双上的任意一个点都可以做中点,所以方点的贡献要额外乘以点双的大小,但显然这样会有重复,得去重,考虑两个点之间的简...

2019-04-03 10:54:31 88

原创 洛谷 P3784 [SDOI2017]遗忘的集合(任意模数NTT+多项式求ln)

题目链接emmm,只要做过付公主的背包,这题就还算清真了首先还是对生成函数求逆,我们知道ln(f(x))=∑i=1naix∗[x %ai =0]ln(f(x))=\sum_{i=1}^{n}{\frac{a_i}{x}*[x\, \%a_i\,=0]}ln(f(x))=∑i=1n​xai​​∗[x%ai​=0]假设我们已经求出了这个逆...

2019-03-21 19:23:54 119

原创 洛谷 P4770 [NOI2018]你的名字(后缀自动机+线段树合并)

题目链接emmm,这题其实也不是特别难,个人感觉比之前做过的两道线段树合并right的后缀自动机都要简单不少(另两道都至少长2k……首先考虑一下询问区间就是整串的情况我们先对长串S建SAM然后把询问串T在长串上跑匹配,假设1−Ti1-T_i1−Ti​能匹配的长度为len,显然i−leni-leni−len个串不会在SSS中出现,我们把答案加上即可但是吧,你仔细一看题,发现他要统计的是串的...

2019-03-20 16:05:55 195

原创 洛谷 P4389 付公主的背包(多项式exp)

题目链接这题乍一眼应该是个生成函数题我们可以把体积转化成生成函数f(x)=[xf(x)=[xf(x)=[x%v==0]v==0]v==0]然后跑1e5次FFT就可以了emmm,感觉有点不妙啊,1e5次FFT什么的好像肯定要T啊我们感受下复杂度主要集中在卷积上面因为求ln能化乘为加,所以可以对生成函数求一波ln康康好的,发现很有规律f(x)=[xf(x)=[xf(x)=[x%v==0]...

2019-03-17 20:51:04 117

原创 洛谷 P4595 [COCI2011-2012#5] POPLOCAVANJE(SAM)

题目链接emmm,为什么最近天天碰到卡这种那种的题目啊,真的自闭了……首先吧,这题最暴力的两种做法建5000*5000的ac自动机建带线段树合并的SAM思路都比较简单,而且如果不卡空间的话复杂度都挺对但可惜它卡空间……这个时候对应的有两种优化方法分块定期重构的ac自动机暴力SAM……因为SAM比较好想就写了SAM思路是先对长串建SAM,把每个短串都在SAM里匹配一遍,如果能完...

2019-03-13 22:27:39 117

原创 CodeForces 528D Fuzzy Search(FFT)

题目链接之前说了怎么用FFT匹配字符串,这题也差不多显然只有ACGT这么几个是在暗示我们把他们分开算长串t,短串s,长串长lenb,短串长lena那么我们的任务就变成了计算在从长串t的p位置开始能不能把短串里的所有这类字符匹配上去我们定义一个函数f[i]f[i]=1表示长串t中i这个位置左右k内都没有该字符f[i]=0表示有函数g[i]表示i这个位置是不是该字符显然匹配失败当且仅...

2019-03-13 13:00:35 90

原创 洛谷P4173 残缺的字符串(FFT匹配字符串)

首先考虑完整两串的匹配(我知道可以kmp,但是模糊匹配的思路需要从这里引出假设短串a长为lena长串b长为lenb我们知道两串如果完整匹配,他们每一个位置都要相同,即a[i]−b[y+i]=0a[i]-b[y+i]=0a[i]−b[y+i]=0所以说a要完整匹配要满足:∑i=0lenaa[i]−b[y+i]=0\sum_{i=0}^{lena} a[i]-b[y+i]=0i=0∑lena​...

2019-03-13 10:25:44 191

原创 洛谷 P4169 [Violet]天使玩偶/SJY摆棋子(模板 带插入K-D tree)

题目链接说起来k-d tree这玩意也很暴力啊建树的话每次取剩下数列下一维中位数的点做儿子(其实随机哪维也行,就跟点分找重心一样,这只是一个复杂度的问题查询就是一个暴力剪枝估价为这个子树代表的包含所有点的矩形离查询点的最近距离(具体方法一言难尽,直接看估价函数就好懂了插入就直接二分插入,但是这样显然是会被卡成链之类的东西的,显然像替罪羊树一样定期重构就可以了#include<bi...

2019-03-12 14:27:27 383

原创 洛谷 P2617 Dynamic Rankings(毒瘤卡常题 带修主席树/TLE的树套树)

题目描述一道垃圾的区间带修第k大写了一天线段树套splay TLE优化成两个log TLE套替罪羊树 TLE套权值线段树 TLE算了吧,就当模板带修主席树吧带修主席树这玩意真暴力就用个树状数组把一堆线段树套起来然后求的时候把每个树状数组里的点都暴力提取出来,直接暴力对每个点对应的数统计答案,树上二分模板题也没什么好说的,垃圾……代码如下:#include<bits/s...

2019-03-11 22:19:25 136

原创 洛谷 P4841 城市规划(分治FFT+容斥)

题目链接推一波式子首先如果不要求联通的话公式很简单,令n个点不要求联通的方案数为gng_ngn​gn=2n∗(n−1)2g_n=2^{\frac{n*(n-1)}{2}}gn​=22n∗(n−1)​因为每条边都可以选或不选然后假设要求联通的方案数为fnf_nfn​可以找出gng_ngn​与fff的关系gn=∑i=1n(n−1i−1)fign−ig_n=\sum_{i=1}^n {n-...

2019-03-11 16:08:05 121

原创 洛谷P4457 [BJOI2018]治疗之雨(期望+高斯消元)

题目链接推下式子假设就先不管加血对mmm个人随机搞kkk次,掉jjj第血的概率为p[j]p[j]p[j]显然就是从kkk次里选jjj次刚他,得到公式p[j]=Ckj(1m+1)j(mm+1)k−jp[j]=C_k^j(\frac{1}{m+1})^j(\frac{m}{m+1})^{k-j}p[j]=Ckj​(m+11​)j(m+1m​)k−j嘛,这个东西是可以线性推出来的。那么接着...

2019-03-07 07:54:19 136 1

原创 2018 EC-final J Philosophical … Balance (后缀自动机+树型DP+纳什均衡)

题目链接好的吧,我并不知道纳什均衡是什么反正遥遥领先跟我说这题姑且可以把纳什均衡理解成每个子树分配的比例乘以权值都相等查询的是lcp那么就先把后缀树建出来,然后每个后缀就是np类节点,每两个np节点之间的lca的len就是lcp考虑树型DPdp[i]表示第i个点的所有子树平分1产生的最小值这个点是np类节点,那么显然这个点直接赋成他的len返回就可以了,因为肯定给这个点直接赋1是最优...

2019-03-06 12:49:30 449

原创 洛谷P4091 [HEOI2016/TJOI2016]求和(NTT+第二类斯特林数)

求∑i=0n∑j=0nS(i,j)×2j×(j!)\sum_{i=0}^{n}\sum_{j=0}^{n}S(i,j)\times2^j\times(j!)i=0∑n​j=0∑n​S(i,j)×2j×(j!)emmm,显然后面两个只带j的跟i没啥关系,扔到前面去∑j=0n2j×(j!)∑i=0nS(i,j)\sum_{j=0}^{n}2^j\times(j!)\sum_{i=0}^{n}S(...

2019-03-04 18:36:50 109

原创 洛谷P4847 银河英雄传说V2(LCT)

题目链接不知道该如何评价这题……我觉得这种做法不是很算得上LCT,应该只是splay写颗假的lct,同在一个序列里的都用实边相连每次link将第一个序列的头找到,第二个序列的尾找到,头尾之间连实边打通每次cut直接提到根把实边直接断掉查询的时候分别拎出两个点,做前缀和式的查询就行了,如果答案小于等于零就换下这两个点的位置代码如下:#include<bits/stdc++.h&g...

2019-03-03 20:11:52 62

原创 洛谷P3768 简单的数学题(莫比乌斯反演+杜教筛+狄利克雷卷积)

题目链接我错了,杜教筛不是只背板子就够的qwq跟着神仙yyb推了一遍式子,感觉这题还是很神仙题意是求∑i=1n∑j=1nijgcd(i,j)\sum_{i=1}^{n}\sum_{j=1}^{n}ijgcd(i,j)i=1∑n​j=1∑n​ijgcd(i,j)显然先把gcd枚举一下,假设gcd(i,j)==k原式就为∑k=1nk∑i=1n∑j=1nij[gcd(i,j)==k]\su...

2019-03-03 17:30:38 106

原创 洛谷P3172 [CQOI2015]选数(莫比乌斯反演+杜教筛)

嘛,主要是为了学杜教筛然后发现其实可以背板子?那么就假装会用杜教筛求比较大的莫比乌斯函数的前缀和了这个时候愉快的推出公式整除分块一波就可以过了代码如下:#include<bits/stdc++.h>#define N 2000010#define mod 1000000007using namespace std;int vis[N],p[N],mu[N];int...

2019-02-28 22:32:16 61

原创 洛谷 P2056 [ZJOI2007]捉迷藏(动态点分治)

题目链接冒着滥用此题将封号的风险测了七发RP才过……每个点建两个双堆,堆a表示这个点所在的子树里所有点到他点分树中父亲的距离,堆b表示所有点分树子树中到他距离最大的个点的距离,堆c用来存全局答案,显然全局答案就是每个堆b中最大值和次大值的和点分树上暴跳父亲复杂度是log的,所以总复杂度是nlog2nnlog^2nnlog2n代码如下:#include<bits/stdc++.h&g...

2019-02-27 16:40:22 79

原创 洛谷P4719 【模板】动态dp

题目链接ddp就是通过加法对min/max的分配率把原来不好维护的dp转移搞成可以遵循分配率的矩阵形式,自然就以用一些数据结构去维护比如说这题求最大权独立集先写出转移方程dp[u][0/1]表示该点取或者不取时该点为根的子树的最大权独立集dp[u][0]=∑\sum∑max(dp[v][0],dp[v][1])dp[u][1]=(∑\sum∑dp[v][0]) +val[u]数据结构...

2019-02-25 19:17:17 82

原创 洛谷P2000 拯救世界(NTT+生成函数)

题目链接这题还是蛮不错的,去年noip之前就推出了通项,但因为FFT被卡了精度就一直没写和那道食物差不多的推式子方法kkksc03大神召唤方法:金神石的块数必须是6的倍数。1+x6+x12+...=1x6−11+x^6+x^{12}+...=\frac{1}{x^6-1}1+x6+x12+...=x6−11​木神石最多用9块。1+x+x2+...+x9=x10−1x−11+x+x^2...

2019-02-21 20:38:55 200

原创 CodeForces 666E Forensic Examination(广义后缀自动机+线段树合并)

题目链接题解:首先对于所有较短串建广义后缀自动机,线段树合并即可得到每个点所带表串在每个串中的出现次数,将询问按照长串的r从小到大排序,每次r变化的时候先把1-r的最长匹配后缀所在的位置在parent树上跳出来,然后对于不同的长度在该位置到根的链上倍增跳祖先,把每个点应该在的位置处理出来之后就可以直接在线段树上查询了,方法就是各显神通,个人的方法不是很好代码写的不是很好看#include&l...

2019-02-20 22:25:05 56

原创 BZOJ3998 [TJOI2015]弦论(后缀自动机求字典序第k小子串)

题目链接先考虑相同子串算不同的情况性质一:后缀自动机中parent树中一个节点子树中np类节点的个数为该串在原串中出现的次数根据这个性质可以通过一遍parent树上的dfs求出每个点的出现次数后缀自动机里每个节点代表的串是多个的,但是这些串出现的次数都是一样的。因此我们沿着字符边走到一个点的时候,这个点的权值就是这个字符串的出现次数此时可以考虑到和权值线段树找第k大的思路:树上二分记...

2019-02-14 19:28:02 374 3

原创 普林斯顿微积分读本小记(未完待续)

第一章 函数图像和直线1.1.4 垂线检验函数是一一映射的,如果一个f(x)f(x)f(x)对应两个值,那么就不是函数垂线检验便是如此,如果一个图形与同一条垂直于xxx轴的直线有两交点,那么就没有通过垂线检验,不是函数。如上图,一条与xxx轴垂直的直线x=1x=1x=1与曲线x2+y2=9x^2+y^2=9x2+y2=9有两个交点所以x2+y2=9x^2+y^2=9x2+y2=9不通过...

2019-02-03 10:33:32 867

原创 我是来混勋章的

RT

2018-10-24 11:38:08 162 1

原创 bzoj 1951 [SDOI2010]古代猪文 (欧拉定理+卢卡斯+CRT)

题目链接求G∑i∣nCniG^{\sum_{i|n} C_{n}^{i}}G∑i∣n​Cni​在mod999911659mod999911659mod999911659意义下的值如果G、PG、PG、P不互质,显然GGG是PPP的倍数,答案为0否则根据欧拉定理G∑i∣nCni≡G∑i∣nCnimodϕ(p)≡G∑i∣nCnimod(p−1)G^{\sum_{i|n} C_{n}^{i}} \...

2018-10-18 17:59:38 67

原创 bzoj 3208 食物(生成函数)

先推一下生成函数 承德汉堡:偶数个 1+x2+x4+x6+......=11−x21+x2+x4+x6+......=11−x21+x^2+x^4+x^6+...... =\frac{1}{1-x^2} 可乐:0个或1个 1+x=1−x21−x1+x=1−x21−x1+x=\frac{1-x^2}{1-x} 鸡腿:0个或1个或2个 1+x+x2=1−x31−x1+x+x2=1−x31...

2018-09-09 18:15:15 767

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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