自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Zimba_的博客

这个人很懒,没有描述

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

原创 快速傅里叶变换FFT简明教程

问题给出长度为nnn的多项式f(x)=∑i=0n−1aixif(x)=\sum_{i=0}^{n-1}a_{i}x^{i}f(x)=∑i=0n−1​ai​xi和长度为mmm多项式g(x)=∑i=0m−1bixig(x)=\sum_{i=0}^{m-1}b_{i}x^{i}g(x)=∑i=0m−1​bi​xi。求解多项式h(x)=f(x)×g(x)h(x)=f(x)\times g(x)h(x)=f(x)×g(x)。(1≤n≤105)(1\leq n\leq 10^{5})(1≤n≤105)系数表示法和

2022-04-22 18:01:24 670 2

原创 经典套路:一类字符串计数的DP问题

概述在各种比赛中经常会碰到这样一类问题:给出一个(或多个)短串,问你能构造出多少个不同的长度为n的长串,不包含(或包含)这些短串。这是一个常见的字符串计数问题,解决这类问题的思路是一致的。在这希望读者学会这篇博客后,碰到类似的问题(理解了解题的思想,再结合一点点想法)都能通过,或发现博客中不足以通过某题而产生新的衍生。附上KMP板子:无附上AC自动机板子:(我好像trie拼错成tire了,但是用了两年的板子懒得改了)#include<bits/stdc++.h>using

2021-07-07 16:56:19 398

原创 Dirichlet 前缀和(数论优化式子复杂度利器)

概述当式子优化到∑d=1n∑d∣is(i)\sum_{d=1}^{n}\sum_{d|i}s(i)∑d=1n​∑d∣i​s(i)类似形式时,我们可以o(nlogn)o(nlogn)o(nlogn)做。但是当nnn取10710^7107时就十分危险了,直到今天发现了这么个东西——Dirichlet 前缀和。它可以在o(nloglogn)o(nloglogn)o(nloglogn)的复杂度内解决这个问题,快近似o(n)o(n)o(n)了。这篇博客用来记板子,要学可以看这篇博客。Dirichlet 前缀和

2021-01-19 16:37:55 403 1

原创 [牛客挑战赛47]C.条件 (bitset加速floyd)

传送门题意:给定nnn个点的图,有m1m_{1}m1​条边一定存在,有m2m_{2}m2​条边一定不存在。给出QQQ次询问,每次询问两个点xxx和yyy,问:xxx是否一定可达yyyxxx是否可能可达yyy(n≤1000,Q≤200000)(n\leq1000,Q\leq 200000)(n≤1000,Q≤200000)做法:首先要明确的思路是建两张图,一张是只有一定存在的边的,一张是包括一定存在的边和可能存在的边的。然后对于两张图都预处理出点间的可达性,最后询问直接查询。一种想法是

2021-01-17 20:41:53 206

原创 1D/1D动态规划学习总结

前言:自从发现1D/1D动态规划这个新的技能块后,每次看到这类题目都能口嗨成功,然后队友催我赶紧学。再者发现有好多优化方法,所以慢慢学,每天学一点,加上还要做一些奇奇怪怪的题目保持状态,也就差不多了。第0天(1D/1D动态规划):什么是1D/1D动态规划?1D/1D动态规划是指形如dpi=max{dpj+w(i,j)}dp_{i}=max\{ dp_{j}+w(i,j)\}dpi​=max{dpj​+w(i,j)}的动态规划,当然maxmaxmax也可以换成minminmin。据说长这样的dpdp

2020-12-07 20:25:06 1092

原创 [2020WC Day2]F.采蘑菇的克拉莉丝(子树和查询、轻重儿子思想)

题意:给定一棵nnn个点,n−1n-1n−1条边的带边权的无向图,图上的点可以长蘑菇。克拉莉丝起始点在点111。接着发生qqq次事件。事件有两种:1  v  x1\;v\;x1vx表示在点vvv上新长了xxx个蘑菇。2  v2\;v2v表示克拉莉丝的起始位置变成了点vvv。在每个事件后,克拉莉丝想要知道她收集完所有蘑菇的代价。对于任意一个蘑菇,收集它的代价是这个蘑菇所在点到克拉莉丝起始点路径上最靠近克拉莉丝起始点的边的边权。数据范围:1≤n≤1061\leq n\leq 10^{6}1≤n

2020-11-22 18:46:56 190 3

原创 [CF 1425D]Danger of Mad Snakes(组合计数+容斥)

题目链接题意:有一个1000×10001000\times 10001000×1000的方格。有nnn条蛇在方格中,每条蛇告诉你在方格中的坐标(Xi,Yi)(X_{i},Y_{i})(Xi​,Yi​)和一个权值BiB_{i}Bi​。然后任意选其中mmm条蛇,对于每条被选中的蛇,它和所有满足max(∣X′−X∣,∣Y′−Y∣)<=Rmax(|X'-X|,|Y'-Y|)<=Rmax(∣X′−X∣,∣Y′−Y∣)<=R的位于(X′,Y′)(X',Y')(X′,Y′)的蛇都会被杀死。对于.

2020-10-13 13:10:04 131

原创 [COCI] Vještica (子集dp)

题意:给定n(n≤16)n(n\leq 16)n(n≤16)个串。你可以把串内的字母任意排列,使得将这些串插入字典树后的结点最少。串总长不超过10610^{6}106.思路:只有161616位,考虑状压表示集合。用DP((10111)2)DP((10111)_{2})DP((10111)2​)表示第1,3,4,51,3,4,51,3,4,5串被插入后的最小结点数。先考虑两个串插入字典树,贡献的结点数是两个串的结点数之和减去两个串的前缀。所以,我们考虑两个串的前缀要最长,就是每个字母的个数取mi

2020-10-08 20:21:09 125

原创 图论入门——建图

背景:本来以前学过的东西都懒得写了,不过小徒弟学图论好像碰到瓶颈了,就写一篇大致讲一下。概念:首先,我们要了解图的定义。什么是图?一张图GGG由两个集合组成的二元组,点集VVV和边集EEE。即G=(V,E)G=(V,E)G=(V,E)。边就是连接点和点之间的关系,分成有向边和无向边两种。无向图就是都是无向边的图。有向图就是有向边组成的图。具体题目中,边和点可能由权值,也就是点权和边权。路径是一个点到另一个点经过的边的序列。简单路径指没有经过重复边的路径。环,也叫回路,指的是一个点经过

2020-09-29 20:48:48 951

原创 积性函数前缀和——杜教筛

背景:这课太无聊了,太吵学不进去,干脆写博客好了。题目:给定一个nnn,求∑i=1nμ(i)\sum_{i=1}^{n}\mu(i)∑i=1n​μ(i)和∑i=1nφ(i)\sum_{i=1}^{n}\varphi(i)∑i=1n​φ(i)。(1≤n≤1010)(1\leq n\leq 10^{10})(1≤n≤1010)(某些积性函数前缀和)正文:如果不知道什么是积性函数出门左转隔壁教室。我们知道,μ\muμ函数和φ\varphiφ可以o(n)o(\sqrt{n})o(n​)...

2020-09-29 18:57:20 341

原创 [ACM-ICPC 2018 沈阳赛区网络预赛] J.Ka Chang (分块+dfs序)

题目链接题意:给定一棵nnn个点的树,有两种操作:1.1.1.给所有深度为LLL的点权值加上XXX。2.2.2.查询根为XXX的子树的点权和。给出qqq次操作,对于每次操作222,输出结果。(1≤n,q≤105)(1\leq n,q \leq 10^{5})(1≤n,q≤105)思路:如果只有操作111,我们可以维护bfsbfsbfs序,这样同深度的点一定在一段连续的区间中。如果只有操作222,我们可以维护dfsdfsdfs序,这样某个点的子树一定在一段连续的区间中。但是二者不可兼得,我

2020-09-17 15:13:29 87

原创 [COCI]Lampice (二分+树分治+字符串哈希)

题意:给定一棵nnn个结点的树,每个结点有一个小写字母a—za—za—z。要求一条最长的简单路径,满足沿路径得到的字符串是回文串。(1≤n≤1051\leq n \leq10^{5}1≤n≤105)思路:首先要考虑的问题是,用什么方式去判断树上的一条路径是不是回文串。这里采用的方法是字符串哈希。举个例子,给a—za—za—z每个字母都自己(我命由我不由天)设置一个哈希值,再设置一个basebasebase值和模数MMM,字符串abbcbbaabbcbbaabbcbba的哈希值就是H(a)+H(b

2020-09-14 12:30:13 319

原创 [牛客练习赛68]牛牛的粉丝(矩阵快速幂之循环矩阵优化)

题目链接留坑,明天写。

2020-08-28 23:18:12 245 2

原创 [CodeForces - 208E] Blood Cousins(k代兄弟问题)

题目链接加强版例题(还没写)题意:给定一棵nnn个结点的树。给出mmm次询问,每次询问给出xxx和kkk,问xxx有多少个kkk代兄弟。(两个点互为kkk代兄弟的定义是他们的kkk级祖先相同)1≤n,m≤1051\leq n,m \leq 10^{5}1≤n,m≤105做法:把所有点以深度为第一关键字,dfsdfsdfs序为第二关键字排序。然后kkk代兄弟一定是在一段连续的区间中的,这样就转化成区间问题了。这题的话,排好序后,对询问点二分出左右边界,就可以找到它的所有kkk代兄弟了。代码:

2020-08-24 20:28:49 132

原创 P1446 [HNOI2008]Cards(Burnside定理+dp计数)

题目链接题意:要给一副牌染色,染成SrS_{r}Sr​张红色,SbS_{b}Sb​张蓝色,SgS_{g}Sg​张绿色。现给出了mmm种洗牌法(置换),当一副牌可以通过这mmm种洗牌法 (可以用多种洗法,每种可以用多次)洗成另一副牌时,则称这两副牌是同一种。问能染出多少种不同副牌。max{Sr,Sb,Sg}≤20,m≤60max\{S_{r},S_{b},S_{g}\}\leq20,m\leq60max{Sr​,Sb​,Sg​}≤20,m≤60思路:显然是BurnsideBurnsideBurnsi

2020-08-24 14:04:06 140

原创 [hdu6868]Absolute Math(推式子+莫比乌斯反演)

题目链接题意:令f(n)=∑d∣n∣μ(d)∣f(n)=\sum_{d|n}|\mu (d)|f(n)=∑d∣n​∣μ(d)∣。TTT组询问,每组给定一个nnn和mmm,求∑i=1mf(ni)\sum_{i=1}^{m}f(ni)∑i=1m​f(ni)。(1≤T≤104,1≤n,m≤107)(1\leq T\leq 10^{4},1\leq n,m\leq 10^{7})(1≤T≤104,1≤n,m≤107)推导:首先根据莫比乌斯函数μ(n)\mu (n)μ(n)的定义式可以知道,当nnn存在平方

2020-08-19 18:06:07 340

原创 F-牛妹的苹果树(直径合并)

题目链接题意:一棵nnn个结点的树,每条边有个边权wiwiwi。有qqq次询问,每次询问lll和rrr,求max(dist(u,v)),l≤u≤v≤rmax(dist(u,v)),l\leq u\leq v\leq rmax(dist(u,v)),l≤u≤v≤r。(1≤n,q≤300000)(1\leq n,q\leq 300000)(1≤n,q≤300000)做法:这里有一个结论:已知两个子图的直径端点,那么两个图合并后的直径,就在这四个点中取最远的两个点。所以这题考虑倍增处理出ST表。需要两

2020-08-15 20:14:37 207

原创 [hdu6833]A Very Easy Math Problem(莫比乌斯反演)

题意:给定正整数T,k,xT,k,xT,k,x,接下来TTT组样例,每组样例给出一个正整数nnn,对于每个nnn,要求出∑a1=1n∑a2=1n…∑ax=xn(∏j=1xajk)f(gcd(a1,a2,…,ax))gcd(a1,a2,…,ax)\sum_{a_{1}=1}^{n}\sum_{a_{2}=1}^{n}…\sum_{a_{x}=x}^{n}(\prod_{j=1}^{x}a_{j}^{k})f(gcd(a_{1},a_{2},…,a_{x}))gcd(a_{1},a_{2},…,a_{x}

2020-08-06 20:00:07 419

原创 P2257 YY的GCD(莫比乌斯反演)

题目链接题意:给定 N,MN, MN,M,求 1≤x≤N,1≤y≤M1 \leq x \leq N,1 \leq y \leq M1≤x≤N,1≤y≤M 且 gcd⁡(x,y)\gcd(x, y)gcd(x,y)为质数的 (x,y)(x, y)(x,y) 有多少对。TTT组样例,T=104,N,M≤107T = 10^{4} ,N,M\leq10^{7}T=104,N,M≤107推导:根据题意写出式子,∑i=1N∑j=1M[gcd(i,j)为质数]\sum_{i=1}^{N}\sum_{j=1}

2020-08-05 16:06:51 146

原创 P1390 公约数的和(莫比乌斯反演)

题目链接题意:给定nnn,求∑i=1n∑j=i+1ngcd(i,j)\sum_{i=1}^{n}\sum_{j=i+1}^{n}gcd(i,j)∑i=1n​∑j=i+1n​gcd(i,j)。(n<=2e6)(n<=2e6)(n<=2e6)推导:第一步,按套路先把gcdgcdgcd提到前面来,∑g=1ng∑i=1n∑j=i+1n[g=gcd(i,j)]\sum_{g=1}^{n}g\sum_{i=1}^{n}\sum_{j=i+1}^{n}[g=gcd(i,j)]∑g=1n​g∑i

2020-08-05 14:52:26 152

原创 [LNOI2014]LCA——树链剖分——多点LCA深度和问题

模板:题目链接进阶:题目链接题意:给定一棵nnn个点的树。qqq次询问,每次询问给出三个值l,r,zl,r,zl,r,z,要求出∑i=lrdep(LCA(i,z))\sum_{i=l}^{r}dep(LCA(i,z))∑i=lr​dep(LCA(i,z))。(n<=1e5,q<=1e5)(n<=1e5,q<=1e5)(n<=1e5,q<=1e5)思路:考虑求点aaa和点bbb的LCALCALCA深度,我们可以把点aaa到rootrootroot路径上的点权都加

2020-08-01 21:06:54 397

原创 技能点挖坑

组合数前缀和LGV定理

2020-07-23 21:01:25 103

原创 莫比乌斯反演

前言:刚写完积性函数,今天两更,更完睡觉。 莫比乌斯函数μ(n)\mu(n)μ(n):不知道迪利克雷卷积的去隔壁上课。怎么求莫比乌斯函数也在隔壁讲了。并且我们知道了u∗1=eu*1=eu∗1=e。 现在我们来学习怎么用莫比乌斯函数。没错,那就是莫比乌斯反演了。 莫比乌斯反演:什么是莫比乌斯反演?我们设fff为数论函数,fff的和函数的值为F(...

2020-02-25 08:26:03 274

原创 积性函数与迪利克雷卷积

前言:早睡早起身体好!今天更一下积性函数。 积性函数的定义:什么是积性函数呢?(又叫乘性函数) 先讲一个更宽泛的概念,算术函数。(算术函数又称数论函数)算数函数,就是对所有正整数定义的函数,也就是定义域为正整数的函数。 而积性函数,则是一种特殊的算术函数。 对于函数f(x)f(x)f(x),若满足f(1)=1f(1)=1f(1)=1,...

2020-02-25 05:56:18 703

原创 数论分块(整除分块)

前言:断更太久,已经忘了博客怎么写了。。这篇博客用来介绍带整除式子的快速求解办法。 符号说明:⌊ab⌋\left \lfloor \frac{a}{b}\right \rfloor⌊ba​⌋ :aaa除以bbb向下取整。⌈ab⌉\left \lceil \frac{a}{b}\right \rceil⌈ba​⌉ :aaa除以bbb向上取整。∑i=1nf(...

2020-02-20 17:22:16 1334

原创 关于素数的不到100个秘密

前言:拖更了一天,这感觉太Nice了。于是在几乎打算断更的情况下艰难地写下了这篇博客。由于作者变懒了,今天没有好好学习,所以没有写欧拉筛的板子,也没有素数测试的板子,更没有大数分解的板子。但是我尽量都会提到他们。板子自寻吧,或者以后写了再补上。如果作者遭遇不测断更后,读者不知道学什么了,请认真打游戏,好好享受生活。  素数的检验:先讲一下什么是素数现在介绍如何检...

2020-01-31 19:10:16 470

原创 Educational Codeforces Round 81 (Rated for Div. 2)

比赛传送门A. Display The Number题意:给你n(2⩽n⩽105)n(2\leqslant n\leqslant 10^{5})n(2⩽n⩽105)根火柴,问最大能拼成的数字。 思路:由于其他数字的火柴都要444个以上,除了111需要222根,777需要333根,所以拼其他数字的话不如拼两个111,而333根火柴的时候拼111不如拼777。所以当nnn为...

2020-01-30 13:19:26 3493 2

原创 (扩展)BSGS与高次同余方程

前言:今天更BSGS算法。俗称大步小步算法(Big-Step G…-Step),又称拔山盖世、北上广深、白色狗屎 。  问题:求解指数同余方程:ax≡b(mod  p)a^{x}\equiv b(mod\; p)ax≡b(modp)的最小自然数解。  BSGS算法:模板题这个算法只考虑gcd(a,p)=1gcd(a,p)=1gcd(a,p)...

2020-01-29 18:30:01 799

原创 数论之阶与原根讲解

前言:本来想写BSGS算法,但是笔者今天想打游戏 感觉先写原根会更好一点,所以我们今天重点讨论一下什么是原根、哪些整数有原根、原根的性质和求解。 提要:为了减少后面的阅读障碍,先简单介绍一下欧拉函数φ(x)\varphi(x)φ(x),主要部分后面放积性函数那介绍。(ps:书上符号写的是ϕ(x)\phi(x)ϕ(x),但网上写的是φ(x)\varphi(x)φ(x),不过这不重要...

2020-01-28 17:28:53 6824 4

原创 组合数求解与(扩展)卢卡斯定理

前言:咳咳咳咳 ,最近瘟疫盛行,围观的记得要戴口罩。求解组合数的方法大家应该都见了很多了,这篇博客将围绕这个问题进行归纳和深入学习。 问题:给定n,k,pn,k,pn,k,p求解组合数Cnk(mod  p)C_{n}^{k}(mod\;p)Cnk​(modp)。  那么,什么是组合数?那么,我们先列举两种种简单的求解组合数的办法。 &n...

2020-01-27 20:37:43 4966

原创 同余意义下的运算法则与逆元、和二次剩余、和数论四大定理

同余:(这里只讲整数的同余)101010除以777余数是333,171717除以777余数也是333,那么就称101010与171717在模777意义下同余,符号表示为  10≡17  (mod  7)\;10\equiv 17 \; (mod \; 7)10≡17(mod7)。 然后,很容易得到一些性质:自反性:a≡a  (mod  m)a\equiv a \; (mod \...

2020-01-26 19:38:56 1846

原创 保洁阿姨都能看懂的中国剩余定理和扩展中国剩余定理

背景:这个定理又叫孙子定理,问题的提出最早在南北朝的《孙子兵法算经》里,“有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二。问物几何?”,即,一个整数除以三余二,除以五余三,除以七余二,求这个整数。  问题:求解同余方程组,形如:(盗图,版权意识薄弱,读书人的事情那能叫偷吗?)解决这个问题前,我们要清楚的一点。令M=lcm(m1,m2,…,mn)M=lcm(...

2020-01-25 21:33:19 575 1

原创 数论之拓展欧几里得

概要:首先来看它进化前的样子,也就是人尽皆知的欧几里得算法,用辗转相除法求gcd。ll gcd(ll a,ll b){ return b?gcd(b,a%b):a;}而拓展欧几里得,则是在欧几里得算法的应用上进行了拓展。它在求解gcd的基础上,额外解决了一个问题——求解二元不定方程的通解,即ax+by=max+by=max+by=m,其中aaa,bbb,mmm为已知,xxx,y...

2020-01-25 19:59:51 491 2

原创 [Educational Codeforces Round 80] 解题报告

比赛传送门A. Deadline题意:给你一个n和d (1≤n≤109, 1≤d≤109) ,问是否存在自然数x,使得x+⌈dx+1⌉⩽nx+\left \lceil \frac{d}{x+1}\right \rceil\leqslant nx+⌈x+1d​⌉⩽n。存在输出YES,不存在输出NO。题解:节约推公式的时间,就写了一个o(n\sqrt{n}n​)的暴力,从0到d\sqrt{d...

2020-01-15 14:16:51 1599 1

原创 简单易懂的子集dp

前置知识:状压:用二进制(或n进制)代表的十进制数来表示状态,通过位操作进行状态调整。举个例子,房间内4盏灯的亮灭情况为0101,该状态存储下的十进制数为5。从右往左编号为0,1,2,3。打开第3盏灯即将原状态5变为5|(1<<3)。关于状压只做简单介绍。枚举二进制子集:二进制数为s,枚举其子集的含义是指,枚举所有x∈{x| x|s=s}。具体操作如下: fo...

2020-01-12 16:39:01 1148

空空如也

空空如也

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

TA关注的人

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