自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(405)
  • 资源 (1)
  • 收藏
  • 关注

原创 【总结】最小树形图 朱刘算法

前言省选复习的时候,发现没写博客。。。来补一篇。。最小树形图就是有向图的最小生成树,满足从根出发,能到达所有节点,且边权和尽可能小。朱刘算法很暴力的方法,每个点在指向它的边中,选择最小的一条(根节点不选)。然后答案加上每个点选出的边权。然后可能有环,就缩环成点,然后改一下边权val’-=val,表示之后若选择val’,则必须断开val一直这样做下去,直到某一次找不到环了就停止...

2019-04-04 15:13:34 632

原创 【后缀自动机】Hihocoder#1449 : 后缀自动机三·重复旋律6

分析:后缀自动机板子题。维护endpos集合大小。复制出来的点不代表任何一个前缀,所以其endpos集合大小为所有fail指向它的endpos之和,否则其endpos集合大小为所有fail指向它的endpos之和+1#include<cstring>#include<algorithm>#include<cmath>#include<cstd...

2019-04-02 10:47:52 343

原创 【LCT】BJOI2014大融合

分析:比较简单的LCT维护子树板子题(set都用不着…)#include<cstdio>#include<cstring>#include<algorithm>#include<vector>#define SF scanf#define PF printf#define MAXN 100010using namespace std...

2019-04-01 18:46:29 313

原创 【虚数】BZOJ3572[HNOI2014]世界树

题意:给出一颗树,每次选中m个点,对于树上任意一个点,会被其最近的一个选中点包含(相同有编号小优先),求每个选中点包含了多少个点。分析:之前写过两次都没写博客。。结果复习板题的时候,连题意都不知道。。。方法就是虚数板子#include<cstdio>#include<cstring>#include<algorithm>#include&lt...

2019-04-01 16:39:23 202

原创 【复杂度玄学】【数学】省选模拟51nod 乘法表

分析:搞不懂为什么理论复杂度那么大。。但是的确跑不满。。。根据题意,得到g∣10dc+dbb′+10dca′g|\frac {10^{dc+db}} {b&#x27;}+\frac {10^{dc}} {a&#x27;}g∣b′10dc+db​+a′10dc​其中g=(a,b),a′=a/g,b′=b/gg=(a,b),a&#x27;=a/g,b&#x27;...

2019-04-01 07:51:04 240

原创 【FWT】【复杂度玄学】BZOJ5019[Snoi2017]遗失的答案

分析:至今仍然不知道。。。为什么N以内的,是L的因数且是G的倍数的数不超过1000个。。。缸道理不应该是N\sqrt NN​个吗。。。看来是我孤陋寡闻了。。。。合并的时候用一下FWT#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#include&...

2019-03-30 09:19:18 191

原创 【点分治】VW's Contest #1 C

分析:考场上没来得及看其实也不难点分治水水就过了每次加入链最大值最小的,这样每次加入时,能够保证它是所有已加入点的最大值。#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#include<queue>#include<vecto...

2019-03-29 16:21:14 176

原创 【杜教筛】【容斥】VW's Contest #1 B

分析:要是在一年前,我估计会分类到莫比乌斯反演。。。很显然的莫比乌斯函数来容斥,只不过算10910^9109级别的前缀和需要用杜教筛#include<cstdio>#include<cstring>#include<algorithm>#include<map>#include<vector>#define SF scan...

2019-03-29 16:19:43 185

原创 【常系数线性递推】51nod1538 一道难题

分析:懒得去卡常。。。#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#include<vector>#define SF scanf#define PF printf#define MOD 104857601#define MAXN...

2019-03-28 22:23:04 192

原创 【容斥】【状压DP】【矩阵加速】B君的吸引

分析:硬核数据范围欺诈。。。数据开大了可还行。。。考场上想了三个小时都以为是骗分。。。其实还是蛮简单的。就是有些坑二维的平移,不一定平移(i,j)时,每个i*j的矩阵都必须一模一样。考场上被这个毒了好久。。。#include<cstdio>#include<cstring>#include<algorithm>#include<vecto...

2019-03-28 20:30:22 167

原创 【伯努利数】【MTT】51nod 1258序列求和

分析:Sk(n)=1k+1∑i=0i≤kCk+1iBink+1−iS_k(n)=\frac {1} {k+1}\sum_{i=0}^{i\leq k}C_{k+1}^{i}B_in^{k+1-i}Sk​(n)=k+11​i=0∑i≤k​Ck+1i​Bi​nk+1−i#include<cstdio>#include<algorithm>#include<vect...

2019-03-27 17:40:50 204

原创 【总结】MTT算法

前言51nod1258真是道好题。。。一道题,学会了3个东西:伯努利数,自然数幂和,MTT…前置科技(其实学MTT的人估计都会。。。)CRT(中国剩余定理)NTTNTT算法的局限众所周知,NTT是通过原根的性质来进行快速傅里叶变化不过,同时也对其模数做出了要求,对于一个模数M,若φ(M)\varphi(M)φ(M)中,2的次数较少(小于要转的序列长度)就不可做了所以,也因此衍生出...

2019-03-27 17:34:56 3935

原创 【总结】伯努利数

分析:伯努利数满足:B0=1,∑i=0i≤nBiCn+1i=0B_0=1,\sum_{i=0}^{i\leq n} B_iC_{n+1}^i=0B0​=1,i=0∑i≤n​Bi​Cn+1i​=0根据这个性质,可以推导出一些结论:∑i=0i≤nBiCn+1i=0\sum_{i=0}^{i\leq n}B_iC_{n+1}^i=0i=0∑i≤n​Bi​Cn+1i​=0∑i=0i&lt...

2019-03-27 17:07:49 635

原创 【多项式】【生成函数】51nod1514 美妙的序列

分析:感觉生成函数在这有点大材小用了。。。。这个合法的序列就是指任意一个前缀都不能是1-i的排列设f(n)f(n)f(n)表示用前n个数组成的合法排列个数。那么f(n)=n!−∑i=0i&lt;nf(i)∗(n−i)!f(n)=n!-\sum_{i=0}^{i&lt;n}f(i)*(n-i)!f(n)=n!−∑i=0i<n​f(i)∗(n−i)!移项∑i=0i≤nf...

2019-03-26 21:39:49 266

原创 【多项式】【字符串】【manachar】BZOJ3160万径人踪灭

分析:还是比较板的多项式老题这题唯一花哨一点的,就是要求回文串不能全部连续。而我们知道,全部连续的话可以用manachar算出来。那么剩下的就是算所有的回文子序列的方案数了。显然fft一发,对每个位置,算出其左边和右边对称的个数,记为f(i)f(i)f(i)那么以i为中心的回文子序列数量就是2f(i)−12^{f(i)}-12f(i)−1#include<cstdio>...

2019-03-26 20:17:18 211

原创 【圆方树】【启发式合并】CodeChef Chef and Sad Pairs

分析:圆方树板子题每个点维护一下它子树中的颜色。启发式合并算贡献不过也可以分颜色用虚树做#include<cstdio>#include<cstring>#include<vector>#include<map>#include<algorithm>#define SF scanf#define PF printf...

2019-03-25 23:19:26 211

原创 【圆方树】CodeForces487E Tourists

分析:圆方树板子题。每个点方点放个multiset维护其子圆点的最小值询问和修改用树剖#include<cstdio>#include<cstring>#include<algorithm>#include<vector>#include<set>#define SF scanf#define PF printf#d...

2019-03-25 23:12:28 136

原创 【圆方树】BZOJ3331 压力

题目:分析:圆方树板子题建出圆方树后,直接树上差分即可#include<cstdio>#include<cstring>#include<algorithm>#include<vector>#define SF scanf#define PF printf#define MAXN 400010using namespace s...

2019-03-25 11:50:34 179

原创 【线段树】省选模拟51nod 小朋友的笑话

题目:分析:辣鸡51nod前两题迅速切掉花了1h先写了一个O(nnlogn)O(n\sqrt n logn)O(nn​logn)的算法,T了,开始想->放弃:1h再写了一个O(nlog⁡2n)O(n\log^2 n)O(nlog2n)的算法,又T了,开始想->放弃:2h最后无奈又想了一个O(nlogn)O(n log n)O(nlogn)的算法,没调完GG最后一看O(...

2019-03-25 10:46:44 289

原创 【多项式】【DP】省选模拟51nod抽卡大赛

题目:分析:O(n4)O(n^4)O(n4)的DP很容易能想到定义DP[i][j][k]DP[i][j][k]DP[i][j][k]表示第i个人选j时,有k个人比它小的概率然后就能直接算期望了。不过这玩意显然要T发现,对于一个已经固定的i,j,那么剩下的所有人的所有情况本质上只有2种:比Ai,jA_{i,j}Ai,j​小,比Ai,jA_{i,j}Ai,j​大。那么可以把每个人比它小...

2019-03-25 10:23:03 178

原创 【DP】【动态DP】BZOJ5210 最大连通子块和

分析:动态DP板子题,DP定义式为f(i,0),f(i,1)f(i,0),f(i,1)f(i,0),f(i,1)分别表示第i为根的子树中的最大值,以i为根的子树的最大答案,以及第i为根的子树中,与i相连的最大联通子树。转移:f(x,1)=max⁡{∑f(u,1)+valx,0}f(x,1)=\max\{\sum f(u,1)+val_x,0\}f(x,1)=max{∑f(u,1)+valx...

2019-03-23 16:41:44 303

原创 【总结】动态DP&全局平衡二叉树

前言:本算法是树剖DDP算法的加速版,复杂度更小(不是特意卡树剖其实看不出来),但还是比较好写,因此在这里提一下动态DP动态DP听起来很黑科技,但其实并不难首先,能动态的DP本身就很少,需要满足很多限制而且一般动态DP的题都会给普通DP留部分分,如果有暴力写得好的,甚至可以在低风险下拿到和DDP差不多的分。扯回正题,动态DP就是把常规DP的转移用矩阵(其实不一定是矩阵,用数据结构特...

2019-03-23 16:11:59 450

原创 【DP】省选四校联考 画画图

分析:这样建树的深度期望是N\sqrt NN​的。然后可以暴力dp了。边权从小到大依次考虑贡献,比其小的算作-1,比其大的算作1,无非就是求这条边两侧边权和为0的连通子树方案数。深度很小,所以暴力DP即可。#include<cstdio>#include<cstring>#include<algorithm>#include<cmath...

2019-03-23 09:46:15 168

原创 【数学】省选四校联考 开开车

分析:这题超有(e)趣(xin)的。。。(又是一道结论题。。。)结论:对于一个三角划分(即题目中的划分方式),每次选择一条划分的边,将全图分为两个多边形,再各自选择一条划分的边,递归操作,一定存在某种方案,使得在很小的层数内全部划分为三角形。。。有了这个结论,这题就很好做了。可以每次选择那条边后,其左侧的点到达右侧的点一定经过这两个点中的一个,因此只需要把这两个点到达所有其他点的最短路...

2019-03-23 09:38:08 141

原创 【数学】省选四校联考 D1T1考考试

分析:显然,一个萌的数,必然满足其所有的后缀都是萌的数。所以,我们可以通过不停地在最高位加值来得到新的萌数。还有一个结论:设这个萌的数表示为:AkAk−1Ak−2……A0A_kA_{k-1}A_{k-2}……A_0Ak​Ak−1​Ak−2​……A0​则其必然满足:Ak∗(10k−2k)+Ak−1∗(10k−1−2k−1)+……+A0∗(100−20)=0 (mod&nbs...

2019-03-23 09:28:05 129

原创 【分块】异或与区间加

分析:非常毒瘤的题目要解出此题,不得不考虑部分分算法当aia_iai​的值很小时,怎么做?首先,由于答案是区间加,很容易想到差分,设fi=Bi−Bi−1f_i=B_i-B_{i-1}fi​=Bi​−Bi−1​可以依次枚举每一个aia_iai​,求出xor和为aia_iai​的所有区间的贡献。对于这个,可以枚举每个位置作为左端点的情况:类似地(但实现上并不类似)于是,接下来...

2019-03-22 12:45:05 694

原创 【竞赛图】【DP】最长路径

分析:很显然,最长路径一定是唯一的。考虑这么证明:对终点v而言,所有不在路径上的点一定指向它。然后,对于次终的点u而言,如果它指向任意一个不在路径上的点,那么可以通过u->x->v,得到一条更长的路径,所以所有不在路径上的点也一定指向它……综上,除了最长路径以外,所有点都指向这条路径。那么,就可以DP了定义DP(i,j)DP(i,j)DP(i,j)表示:i个点的竞赛图...

2019-03-22 12:15:40 627

原创 【Bitset】友好城市

分析:分块+st表+bitset卡常把公路分成k块,内部通过bitset处理出连通状况。每次询问,把连续的一些块通过st表得到边,再用两次dfs求强连通分量的方法,合并这些边,得到新的连通状况。#include<cstdio>#include<cstring>#include<cstdio>#include<cmath>#incl...

2019-03-22 11:12:46 179

原创 【贪心】BZOJ3749[POI2015]Łasuchy

分析:如果vali∗2&lt;vali+1val_i*2&lt;val_{i+1}vali​∗2<vali+1​,那么i必然选择i+1所以,我们可以把所有这种情况全部找出来。然后,考虑剩下的情况中,是否存在vali&lt;vali+1val_i&lt;val_{i+1}vali​<vali+1​的这种情况下iii选择i+1i+1i+1,否则iii...

2019-03-20 22:47:49 278

原创 【总结】【随机化算法】

前言考试就像一盒巧克力,你永远不知道你恶心了两个小时的T1是不是随机化算法简介作为一种算法,更不如说是一类套路,这类套路又大致可分为三大类:1、有错误概率,但经过数次操作后,每次都错的概率极低。(此类大多为最优性问题)2、时间不确定,但经过数次操作后,仍未出解的概率极低。(此类大多为存在性问题)3、精度要求不高,可以通过其他模型大致推断解的范围。(例如多边形面积≈点打在多边形内的概率...

2019-03-18 21:07:23 593

原创 【总结】【筛法】Min_25筛

简介:对于积性函数f(x)f(x)f(x)求∑i=1i≤nf(i)(其中n≤1011左右)\sum_{i=1}^{i\leq n} f(i)(其中n\leq 10^{11}左右)i=1∑i≤n​f(i)(其中n≤1011左右)必须满足的条件是:当p为质数时,F(P)F(P)F(P)必须能表示为一个多项式的形式,即F(P)=A0+A1P+A2P2+……F(P)=A_0+A_1P+A_2P^2...

2019-03-18 20:40:19 247

原创 【数据结构】【LCT】绝版题

题意:分析:很裸的LCT维护子树信息。很显然,如果选中的点从u到v,那么总代价是+P-Q,说白了只跟两侧的点数有关。因此,只要从根出发,找每个儿子:如果满足其子数权值和*2超过了总权值和,那么向这条边走,一定会使得答案更优。所以我们唯一需要做的,就是统计每个点的子树权值和即可。只不过这题好在一不换根二不改子树,所以就那个set存一下虚儿子的信息即可。#include&lt;cs...

2019-03-13 17:40:43 397

原创 【构造】劲爆题

题意:分析如果可以使得二分图的某一侧全为0,另一侧全不为0,那么一定可以满足条件。显然,左侧点权之和=右侧点权之和(mod 3)因此,不为0的一侧就必须满足点权和mod 3=0这个限制是非常弱的:如果这一侧总点数为3∗k3*k3∗k,那么直接所有都为1即可。如果为3∗k+13*k+13∗k+1,那么拿两个数来换成2.如果为3∗k+23*k+23∗k+2,那么拿一个数来换成2.#...

2019-03-13 17:34:38 217

原创 【容斥】【DP】基本题

题意:分析:比较恶心的DP套容斥题。因为排列个数=所有环排列循环节长度。可以很容易算出排列个数,但要求其对应的环排列个数。有个很直观的思路:求出每个环排列个数*其循环节个数的和,将这个和除以排列长度,就能得到换排列个数。然后利用公式∑d∣nφ(d)=n\sum_{d|n}\varphi(d)=n∑d∣n​φ(d)=n于是就可以枚举一个数kkk,求出所有循环节个数为kkk这个数的...

2019-03-13 17:30:03 317

原创 【状压DP】TopCoder15311 AllInclusiveString

题意:叒是那个老船儿长写的题意:分析:显然,每个字母最多出现2次。如果出现3次,中间那次就可以省掉。#include&lt;cstdio&gt;#include&lt;cstring&gt;#include&lt;algorithm&gt;#define SF scanf#define PF printf#define MOD 998244353#define MAXM ...

2019-03-13 16:27:00 139

原创 【BSGS】【数论】TopCoder15277 WrongBase

题意:还是那个船长写的题意:分析:首先,已知的是:Yi≡gxiY_i\equiv g^{x_i}Yi​≡gxi​然后要求hxih^{x_i}hxi​,如果算出T(h=gT)T(h=g^T)T(h=gT)那么hxi=gT×xi=YiTh^{x_i}=g^{T\times x_i}=Y_i^Thxi​=gT×xi​=YiT​#include&lt;cstdio&gt;#includ...

2019-03-13 16:12:16 192

原创 【单调栈】COCI2018/2019 strah

题意:一个老村花写的题意:分析:很简单的单调栈水题。。。从左往右依次计算每一行。。。然后就可以用单调栈+等差数列求和即可。#include&lt;cstdio&gt;#include&lt;cstring&gt;#include&lt;cmath&gt;#include&lt;vector&gt;#define SF scanf#define PF printf#def...

2019-03-13 16:02:49 634

原创 【DP】【树形DP】Splot

题意:分析:很有毒的树形DP题每个串联和并联都可以看作:新加一个点,将串(并)联的两个点作为新点的儿子。然后,可以记录4种状态进行树形DP转移分串并联讨论一下就可以了。#include&lt;cstdio&gt;#include&lt;cstring&gt;#include&lt;algorithm&gt;#include&lt;cmath&gt;#include&lt...

2019-03-13 15:37:59 506

原创 【随机化】【树形DP】【状压DP】BZOJ5232[Lydsy2017省队十连测]好题

分析k很小。。。如果所有颜色都在k以内,那么直接状压即可。如果不在呢?那么随机将某种颜色,映射到k以内的另一个颜色。换言之,我们认为所有映射到同一位置的颜色相同。显然,除了最优策略,其他的情况一定不优于最优策略。那么,一次的正确性显然就是:k!kk\frac {k!} {k^k}kkk!​即最优的k个颜色:能找出最优解的情况/总的映射情况。一次的正确率大约为0.03做个50次左右就接...

2019-03-08 21:42:17 314

原创 【树形DP】COCI2018/2019 Deblo

分析:非常水的树形DP+二进制分组。每条路径在其最高处计算。Dp[i][j][0/1]Dp[i][j][0/1]Dp[i][j][0/1]表示在i的子树中,到达i的路径在第j位为0/1的方案数。#include&amp;lt;cstdio&amp;gt;#include&amp;lt;cstring&amp;gt;#include&amp;lt;algorithm&amp;gt;#include&amp;lt;cmath&amp;

2019-03-06 21:59:51 493 1

IOI2011 Race 测试数据

IOI2011 Race的测试数据,数据有四个文件夹,所有输出数据全是"Correct"。每个输入数据最后一个值才是当前数据的答案。

2018-03-19

空空如也

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

TA关注的人

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