自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 [BZOJ3129][Sdoi2013]方程(容斥原理+扩展lucas)

题目描述传送门题解这题刚开始sb了 首先所有的强制选1个 n1+1~n2的限制就再强制选ai-1个 剩余的需要容斥一下,答案=至少0个超过限制的-至少1个超过限制的+至少2个超过限制的… 2n12^{n1}枚举那些限制强制超过,强制超过的就是要再强制选ai个 然后最后剩下了一个m,x1+...

2017-03-30 21:58:40 692 1

原创 [BZOJ4756][Usaco2017 Jan]Promotion Counting(可持久化线段树)

题目描述传送门题解主席树好久没打也是各种手残啊 这题也是线段树合并的裸题过几天写一发!代码#include<algorithm> #include<iostream> #include<cstring> #include<cstdio> #incl...

2017-03-30 21:51:27 763 0

原创 [BZOJ3064]Tyvj 1518 CPU监控(线段树)

题目描述传送门题解这题真是一道恶心的线段树 需要维护的值有6个:当前最大值,当前的加法标记,当前的覆盖标记;历史最大值,历史最大的加法标记,历史最大的覆盖标记 其实说历史最大的加法和覆盖标记并不是那么准确,更准确地说应该是 现在能用来更新子树的最大值 维护当前的一系列量都比较好写,都是线段树...

2017-03-30 20:59:03 854 0

原创 [BZOJ4403]序列统计(lucas定理)

题目描述传送门题解首先这道题选出来的数只在于选的数本身,而不在于顺序,以为反正到最后要排序的 令r-l+1=m,也就是一共有m个数可选,那么设每一个数被选的个数为xi,那么x1+x2+…+xm=n 也就相当于将n个小球放到m个盒子里,显然插板,答案为Cm−1n+m−1C_{n+m-1}^{m-...

2017-03-30 18:50:10 602 0

原创 [BZOJ2806][Ctsc2012]Cheat(广义后缀自动机+dp)

题目描述传送门题解hxy神犇出过一次胡策题,hxy神犇后缀自动机太神了没办法只能%%%@hxy首先对所有的模板串建立广义后缀自动机,然后对于每一个查询的串,预处理出来这个点最多向前多长是“熟悉的”,也就是以它为结尾的后缀在模板串中出现的最长的是多少a(i) 然后就是dp了,首席二分答案L,令f(...

2017-03-30 17:15:40 607 0

原创 [BZOJ2780][Spoj8093]Sevenk Love Oimaster(广义后缀自动机)

题目描述传送门题解对于所有的模板串建立广义后缀自动机,对于每一个点统计一下right集合中有几个模板串 然后对于所有的查询串在后缀自动机上匹配,然后看一下最终匹配到的那个点有几个模板串就行了 具体的方法是记录一下每一个点最后匹配到的是哪个模板串,然后记录一个cnt,每一次暴力顺着pre指针往上...

2017-03-30 11:40:08 1083 0

原创 [BZOJ3926][Zjoi2015]诸神眷顾的幻想乡(广义后缀自动机)

题目描述传送门题解只与一个空地相邻的空地就是指叶子节点,刚开始理解错了 对于每一个叶子节点以它为根然后对这棵树建立广义后缀自动机 然后对于后缀自动机上的每一个点,以这个点为结尾的不相同的字符串其实就是step(i)-step(pre(i))个,也就是合法的区间长度 因为同一个字符串不会跑到不...

2017-03-30 11:34:12 609 0

原创 [BZOJ4566][Haoi2016]找相同字符(后缀自动机)

题目描述传送门题解将两个串接在一起建立后缀自动机,中间加一个分隔符 对于自动机上的每一个点,统计其right集合中在第一个串中的数量cnt1,在第二个串中的数量cnt2 对于某一个点合法的长度是[step(pre(i))+1,step(i)] 答案累加就是cnt1*cnt2*(step(i)...

2017-03-30 07:44:43 668 0

原创 [BZOJ2946][Poi2000]公共串(后缀自动机)

题目描述传送门题解同spoj1812代码#include<iostream> #include<cstring> #include<cstdio> using namespace std; #define N 100005char s[N]; int T,inf...

2017-03-29 21:55:19 490 0

原创 [BZOJ1396]识别子串(后缀自动机+线段树)

题目描述传送门题解这题思路还是比较好想的 建立后缀自动机了之后统计每一个点right集合的大小,若一个点right集合的大小为1,那么以这个点为右端点的合法子串都是只在字符串中出现过一遍的,所谓合法就是长度在这个点的长度区间[Min,Max]里,这个点在原串中的位置也就是step 那么如何求每...

2017-03-29 21:37:09 469 0

原创 [BZOJ4514][Sdoi2016]数字配对(数论+费用流)

题目描述传送门题解首先判断两个数是否能配对 线筛10710^7范围内的质数,然后超过这个范围的用Miller_Rabbin——直接暴力也可以 拆点xiyi,对于能配对的两个点ij,连边xi->yj,inf,ci*cj,xj->yi,inf,ci*cj 然后对于每一个点i,连边s-...

2017-03-28 22:53:17 423 0

原创 [BZOJ1324]Exca王者之剑(最小割)

题目描述传送门题解题目就是吓唬你玩的 实际上就是有边相邻的格子不能同时选 黑白染色之后最小割代码#include<algorithm> #include<iostream> #include<cstring> #include<cstdio> #...

2017-03-28 19:33:16 422 0

原创 [BZOJ1272][BeiJingWc2008]Gate Of Babylon(容斥原理+组合数学lucas定理)

题目描述传送门题解首先容斥一下 答案=至少0个不满足限制的-至少一个不满足性质的+至少2个不满足性质的… 2t2^t枚举然后计算每一个的答案 假设我们现在要在n种物品中选出m个,相当于是将m个小球放在n个盒子里,允许为空 那么组合数就是Cn−1n+m−1C_{n+m-1}^{n-1} 但...

2017-03-28 17:38:59 600 0

原创 [BZOJ3796]Mushroom追妹纸(hash+后缀数组+二分)

题目描述传送门题解把s1和s2接在一起,中间加一个分隔符 预处理出s3在s1和s2中的哪些位置出现过(hash) 求出sa和height,容易知道答案一定在相邻的两个在不同串里的后缀中产生 对于每一对相邻的后缀,二分一下满足条件的最大长度,即没有出现s3(前缀和) 时间复杂度O(nlogn...

2017-03-28 16:18:22 750 0

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

题目描述传送门题解我tm从头到尾竟然都记了一个错误的反演公式… 令f(n)f(n)表示选出gcd为n的有多少种方案 令F(n)F(n)表示选出gcd为n的倍数的有多少种方案 也就是F(n)=∑n|df(d)F(n)=\sum\limits_{n|d}f(d) 那么利用反演公式可以得到f(n...

2017-03-28 11:11:58 651 0

原创 [BZOJ4176]Lucas的数论(莫比乌斯反演+杜教筛)

题目描述传送门题解做约数个数和的时候有一个结论: d(nm)=∑i|n∑j|m[(i,j)=1]d(nm)=\sum\limits_{i|n}\sum\limits_{j|m}[(i,j)=1] 直接套进去 ∑i=1n∑j=1m∑x|i∑y|j[(x,y)=1]\sum\limits_{i=...

2017-03-28 10:59:58 1341 2

原创 [BZOJ3944]Sum(杜教筛)

题目描述传送门题解杜教筛裸题 我不会手写hash表… 讲解移步:http://blog.csdn.net/clove_unique/article/details/66991109代码#include<algorithm> #include<iostream> #inc...

2017-03-28 10:22:03 881 0

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

预备知识枚举除法⌊ni⌋\lfloor{n\over i}\rfloor只有O(n√)O(\sqrt n)种取值 并且对于i,⌊n⌊ni⌋⌋\lfloor{n\over \lfloor{n\over i}\rfloor}\rfloor是i被n除并下取整取值相同的一段区间的右端点一个非常有用性质:...

2017-03-27 21:46:17 1034 0

原创 [BZOJ2226][Spoj 5971] LCMSum(莫比乌斯反演)

题目描述传送门题解画一波柿子 ∑i=1n[i,j]\sum\limits_{i=1}^n[i,j] =∑i=1nni(i,j)=\sum\limits_{i=1}^n{ni\over (i,j)} =n∑i=1n∑d=1n[(i,n)=d]id=n\sum\limits_{i=1}^n\su...

2017-03-27 18:34:17 661 0

原创 [BZOJ1058][ZJOI2007]报表统计(线段树+splay)

题目描述传送门题解只能往原数列的后面插实际上更方便了,要不然似乎要写两棵splay233 对于MIN_GAP,一棵线段树维护原序列里的每一个位置,实际上后来插一插就变成了一段区间。维护左端点的数字,右端点的数字,这一段区间的最小值。每一次插入只会修改某一个叶子节点的右端点 对于MIN_SORT...

2017-03-27 16:32:23 405 0

原创 [BZOJ1014][JSOI2008]火星人prefix(hash+splay)

题目描述传送门题解用splay维护一段区间的hash值,然后每一次查询的时候二分+判定就行了 算hash值update的时候只需要维护一下左右子树的大小 注意插入一个前驱一个后继,编号不要算错了代码#include<algorithm> #include<iostream&g...

2017-03-27 14:04:22 310 0

原创 [BZOJ2726][SDOI2012]任务安排(斜率优化dp+cdq分治)

题目描述 传送门 题解 哈哈哈速度实力倒数第一 也不知为什么写的奇慢无比卡常数卡到丧心病狂才勉强过了 我分明是把sort都搞成归并了呀… 这题是dp+cdq分治好题啊 首先考虑最裸的dp怎么搞 f(i)表示前i个搞完的最小花费… 等等,时间有后效性…记录一下时间? 瞬间爆炸 ...

2017-03-26 22:49:05 1044 0

原创 [BZOJ2244][SDOI2011]拦截导弹(dp+cdq分治)

题目描述传送门题解这题真tm麻烦 其实dp是很简单的,令f(i)表示以i为结尾的最长非升子序列长度,g(i)表示以i结尾的最长非升子序列的方案数,h(i)和k(i)分别表示以i为开头的 然后对于每一个i,判断f(i)+h(i)-1是否就是最长答案;如果是,那么g(i)*k(i)就是这个点出现的...

2017-03-26 21:45:48 980 0

原创 [BZOJ3963][WF2011]MachineWorks(斜率优化dp+cdq分治)

题目描述传送门题解首先考虑如何暴力dp 肯定是先按照D(i)排序对吧 令f(i)表示在第D(i)天卖掉手里有的机器所能得到的最大收入 那么有一个很显然的dp方程:f(i)=max{f(i-1),max{f(j)-P(j)+G(j)*(D(i)-D(j)-1)+R(j)}}(1<=j&l...

2017-03-26 21:38:50 724 0

原创 [BZOJ3939][Usaco2015 Feb]Cow Hopscotch(cdq分治)

题目描述传送门题解把一个一个的点都拆开 按横坐标分治,每一次按纵坐标排序,然后搞一个数组统计一下标号就行了 因为这里的横坐标是严格小于,所以分治的时候要保证左右两个区间不能有x相同的点 sort太慢了,都改成了归并排序的版本,时间是O(nlogn)O(nlogn)的代码#include<...

2017-03-26 07:33:12 427 0

原创 [BZOJ1492][NOI2007]货币兑换Cash(斜率优化dp+cdq分治)

题目描述传送门题解首先可以发现,每一天的决策一定是全部买入或者全部卖出,因为只要有利益一定最大限度地取,如果有亏损就一点不碰 然后需要说的是,每一天所有的钱数可以唯一地转化为一种A券和B券的方案,也就是说,不用管某一天手里是有钱还是有券,反正都是等价的 令f(i)表示第i天的最大收益,显然f(...

2017-03-25 21:26:08 464 0

原创 [BZOJ4558][JLoi2016]方(数学相关+容斥原理)

题目描述传送门题解这题有毒啊… 首先容斥一下 答案=整个网格内的正方形数-至少有1个点是不合法点的正方形数+恰好有2个点是不合法点的正方形数*2+恰好有3个点是不合法点的正方形数-恰好有4个点是不合法点的正方形数整个网格内的正方形数看似不好算,因为有正着斜着的正方形,但是可以发现每一个正方形都...

2017-03-24 22:10:18 709 0

原创 [BZOJ4237]稻草人(cdq分治+单调栈+二分)

题目描述传送门题解对x排序了之后按照x分治,每一次对y排序 考虑如何处理左区间里的点对右边的点的影响,也就是如何计算左边和右边配对的情况 用两个指针扫的时候,如果左边的连续一段区间里的点想要都和右边的某一个点配对的话,必须满足x单调递减 而右边的区间的某一个点如果要是想和左边的点配对的话,只...

2017-03-24 21:59:51 587 0

原创 [BZOJ2253][2010 Beijing wc]纸箱堆叠(dp+bit+cdq分治)

题目描述传送门题解最长上升子序列+三维偏序问题 裸的dp人人会对吧O(n2)O(n^2) 考虑对序列进行cdq分治,每一次用左边的区间来更新右边的区间 按照x分治,每一次按照y排序,然后z用树状数组查询 需要注意的是,这里全部都是严格大于,也就是说分治的时候划分到左右两边的点不能出现x相等...

2017-03-24 21:47:46 543 0

原创 [BZOJ4455][Zjoi2016]小星星(容斥原理+树形dp)

题目描述传送门题解刚开始的思路是f(i,j,s)表示以i为根的子树,i对应的点为j,其子树对应的点的状态为s的方案数 这样其实是可以dp的,但是时间爆炸啊有没有 事实上正确的思路是差不多的 f(i,j)表示以i为根的子树,i对应的点为j的方案数 这样的话会出来很多的合法的,就是很多点都对应...

2017-03-24 21:33:36 599 0

原创 [BZOJ4596][Shoi2016]黑暗前的幻想乡(容斥原理+矩阵树定理)

题目描述传送门题解首先容斥一下 答案=至少没有公司没有路-至少一个公司没有路+至少两个公司没有路-至少三个公司没有路… 217−12^{17-1}枚举哪些公司没有路,然后将这些公司的路去掉 一个m条边的图的生成树个数可以用矩阵树定理来算 注意:这道题有取模,所以要记录答案的正负,根据行列式...

2017-03-24 21:13:25 925 0

原创 [BZOJ4361]isn(dp+树状数组+容斥原理)

题目描述传送门题解首先dp 令f(i,j)表示选了i个,选到第j个,其中第j个必须选,选出来的顺次排列成一个非降子序列的方案数 那么在整个子序列中选出来i个的方案数就是∑k=1nf(i,k)\sum\limits_{k=1}^nf(i,k) 假如说现在选了i个,也就是最终删除到这i个停止,那...

2017-03-23 18:43:32 459 0

原创 [Codeforces285E]Positions in Permutations(dp+容斥原理+组合数学)

题目描述传送门题解感觉这题难在dp啊 f(i,j,0/1,0/1/2)表示前i个中,选出j个满足要求,第i个位置有/没有,第i个不选/放在i-1/放在i+1的方案数 dp的具体方法看代码吧,感觉状态没法减了 求出了这个之后相当于就求出了前n个选i个满足要求的方案数,剩下的就容斥一下就好啦(乘...

2017-03-23 16:11:59 782 0

原创 [BZOJ3622]已经没有什么好害怕的了(dp+容斥原理+组合数学)

题目描述传送门题解首先判断是否有解,也就是(n+k)/2 mod 2=0 这样的话也就相当于糖比药大的正好有(n+k)/2组 然后剩下的和BZOJ2024就一样了 dpf(i,j)表示前i个糖选出了j个并且比配对的药大的方案数 答案就是强制满足k个-强制满足k+1个+强制满足k+2个… ...

2017-03-23 16:07:53 468 0

原创 [BZOJ2916][Poi1997]Monochromatic Triangles(容斥原理+组合数学)

题目描述传送门题解首先容斥一下~ 同色三角形=总三角形-不同色三角形 总三角形的数量就是C3nC_n^3 不同色三角形一定存在一对异色边 枚举每一个点,以这个点为异色边的连接点选一对异色边,剩下的一条边无所谓了 但是一个三角形会被统计两边(两个连接点),除2就行了代码#include&l...

2017-03-23 14:29:04 576 0

原创 [BZOJ2024][SHOI2009] 舞会(dp+容斥原理+高精度)

题目描述传送门题解首先dp求出来f(i,j)表示从前i个女生中选出j个和男生配对满足女生比男生高的方案数 然后如果要是要求正好k个的话就是一个容斥,强制选k个,k+1个…容斥系数为CkiC_i^k 那么就是0..k做k+1遍容斥就行了代码#include<algorithm> #i...

2017-03-23 11:04:57 998 0

原创 [BZOJ3235][Ahoi2013]好方的蛇(单调栈+容斥原理)

题目描述传送门题解heheda管这叫小学生容斥 首先求出以某一个点为左上角、左下角、右上角、右下角的矩形的数量 这个没法dp,但是可以直接用一个单调栈求出来。预处理出某一个点向上向下最远延伸到的长度,单调栈中的每一个点都是能组成矩形的合法顶点 然后枚举每一个点(i,j),以这个点为左上角的矩...

2017-03-23 07:39:41 851 0

原创 [BZOJ4710][Jsoi2011]分特产(容斥原理+组合数学)

题目描述传送门题解这道题的限制其实挺不明显的,应该是“每个人都至少有一个” 也就是说对于所有的物品,将其划分成n部分,每部分不能为空,问总的方案数 可以如果利用插板法的话,把n个相同的小球放到m个不同的盒子里有Cm−1n+m−1C_{n+m-1}^{m-1}种方案,不过这个只能求出允许空的方案...

2017-03-22 14:18:11 1497 0

原创 [BZOJ3198][Sdoi2013]spring(hash+容斥原理+组合数学)

题目描述传送门题解可以通过枚举+hash求出有i位对应相同有多少对 设其为f(i) 那么答案应该为f(k)∗Ckk−f(k+1)∗Ckk+1...f(6)∗Ck6f(k)*C_k^k-f(k+1)*C_{k+1}^k...f(6)*C_6^k 容斥系数是组合数的原因是即使不考虑有i为对应相同...

2017-03-22 10:57:47 606 0

原创 [BZOJ1042][HAOI2008]硬币购物(dp+容斥原理)

题目描述传送门题解首先dp求出在不限硬币的个数的条件下,组成价值为i有多少种方案sol(i) 这样对于这道题来说sol(s)会多出来很多不合法的方案,因为硬币的个数有上限 那么可以先规定哪些硬币选择的时候超过了上限,对于第i种硬币,不合法的方案应该是sol(s-ci*(di+1)) 但是如果...

2017-03-22 10:45:54 469 0

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