自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Chester King

蒟蒻成长中……

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

原创 【BZOJ】2006 [NOI2010]超级钢琴 ST表+堆+贪心

题目传送门这题好难啊……orz ZZK大佬,如果有一天我能和ZZK大佬一样强就好了……(不存在的!)这题题目大意就是给出一个n长度的序列,从中选出k个长度在[l,r]范围内的互不相同的子序列,求这些子序列的和的最大值。原来这题的模型叫超级钢琴啊,难道就是出自这题吗?一般求最大值之类的东西,我们会很容易想到线段树啦,分治啦,其实还有一种求静态区间最值的高级数据结构——ST表。先对

2017-08-29 21:33:42 288

原创 【BZOJ】2818 Gcd 欧拉函数

这题看似比较麻烦,但是只要仔细一想,发现我们可以把题意转化成:令t=gcd(x,y),若t为素数,则在[1,n/t]的范围内找出所有的点对(x,y),满足gcd(x,y)=1,求点对数的总和。突然发现后面那个不就是欧拉函数吗?所以题目就变成了对于n以内的所有素数t,求1~t内所有数的欧拉函数之和。直接用线性筛求出欧拉函数,然后对于欧拉函数做一遍前缀和,最后枚举n以内的所有素数,统计答案即可。

2017-08-24 20:49:23 283

原创 【POJ】3090 Visible Lattice Points 欧拉函数

题目大意是让我们求Σ(1<=i<=n)Σ(1<=j<i)gcd(i,j)==1,这题不就是一道欧拉函数的裸题吗?欧拉函数(φ)定义:φ(n)=Σgcd(n,i) (1<=i<n)然后有以下定理:若p为素数,则φ(p)=p-1若a,b互质,则φ(a*b)=φ(a)*φ(b),即φ为积性函数若a%b==0,则φ(a*b)=φ(a)*b回到这题,我们可以轻易的发现这题的题意就是让我们求1~n的欧拉函数和*2+1我们可以把欧拉函数写在线性筛里,直接O(n)求出n以内所有数的欧拉函数值,对于每次给出的n

2017-08-24 20:39:31 213

原创 【BZOJ】1257 [CQOI2007]余数之和sum 公式变形

题目传送门这题的题意就是求Σn%i (1根据整除的性质,我们可以把公式变形成n*m-Σi*(n/i) (这里的‘/‘表示整除的意思)考虑n/i取整后,取值种数不超过根号n个,对于一段连续的数,n/i取整后值相同,显然我们可以用等差数列求和的方式来计算贡献。这题还算是良心的,不用取模,不然还要考虑逆元之类的东西……附上AC代码:#include #include usin

2017-08-22 21:40:34 282

原创 【BZOJ】1477 青蛙的约会 扩欧

题目传送门开坑开坑,从此入了数论的坑再也停不下来……话说数论什么的真的好难懂啊……这题的解题思路就是扩展欧几里得算法。对于同余方程ax≡c(mod b),可以转化成ax+by=c来求解。回到这题,我们可以很快的发现题目要我们求(x+m*t)-(y-n*t)=Lp(t为步数,p为圈数)然后我们推一下公式,可以发现(m-n)*t-Lp=y-x,然后就是扩欧的套路了:对于一个不定方程ax

2017-08-21 21:12:23 226

原创 【BZOJ】1597 [Usaco2008 Mar]土地购买 DP

题目传送门上次做斜率优化的题目都是好几个月以前的事情了……今天来复习一波。对于这题,我们可以先按长度从小到大排序,然后考虑土地之间包含的情况,可以发现小的土地对于这题没有用处,直接删去即可。删去所有被包含的土地后可以发现宽度已经从大到小排序了。这个非常显然,考虑i然后我们可以得出一个非常显然的DP状态设置:f[i]表示前i块土地所花费的最小费用。DP的状态转移方程也非常好想:f

2017-08-18 21:50:16 238

原创 【BZOJ】1087 [SCOI2005]互不侵犯King 状压DP(轮廓线DP)

题目传送门看到这么小的数据范围,立马就想到了状压DP。p.s.如果看到数据范围小于20,首先考虑状压DP;小于50,首先考虑折半搜索。——佳龙大佬考虑每一行的国王放置,只和上一行的国王放置情况有关,于是我们可以枚举这两行的国王放置情况。然后我们考虑DP状态的设置,定义f[i][j][now]表示当前放到第i行,已经放了j个国王,当前行的国王放置情况为now的方案数。状态转移方程

2017-08-17 20:45:31 294

原创 【BZOJ】3430 [Usaco2014 Jan]Ski Course Rating 并查集

题目传送门这题嘛,我其实在普及组就做过了……好吧当时的题目没有给出多个起点,直接用二分+BFS的暴力就可以过去了。但是这题有多个起点,还让我们求的是所有起点的难度和(题目意思真难懂……),那我们就不能这么瞎搞了。考虑每个节点向它下方和右方建边,然后将所有的边sort一遍,对每条边的两端做并查集的合并。每次选取一条边,如果两端的联通块大小大于题目给出的t且其中一端的联通块大小小于t,...

2017-08-16 20:16:14 397

原创 【BZOJ】1699 [Usaco2007 Jan]Balanced Lineup排队 ST表

题目传送门今天上课讲到了ST表,本蒟蒻表示不会,于是滚去学了一发……ST表其实就是用倍增的思想来进行区间之间的转移,f[i][j]就表示从第i个节点开始往后2^j个节点的状态。状态的转移也非常好想:f[i][j]=f[i][j-1]&f[i+(1,这里的'&'表示两个区间状态的合并。求答案也非常简单,若给出的区间左右端点分别为l和r,设p=log(r-l+1)/log(2),那么答

2017-08-08 22:21:02 303

原创 【CODE[VS]】1230 元素查找 二分

题目传送门这是一篇无聊的水博客,请各位大佬慎入QwQ。很显然,这题只要是懂一点点基础知识的小学生都会做的题目,但是我们的重点不在这道题上。今天讲课时讲到了lower_bound和upper_bound函数,于是就去学了一发。这两个函数都包含在algorithm库里,用法也是挺简单的:lower_bound(st,ed,val)st和ed表示起止位置,遵循前闭后开的区间原则,

2017-08-08 11:05:47 208

原创 【BZOJ】2342 [Shoi2011]双倍回文 manacher+set

题目传送门“马拉车”什么的好暴力啊……总感觉就是暴力做法,但是好像时间复杂度是O(len)的,比较强啊……对于这道题,我还是too young了,没想到w和wR是可以重叠的……首先我们要明白manacher算法,这个看看大佬的博客就行了:大佬传送门然后这题就变的比较水了,首先求出每两个字符间的回文半径p。然后考虑答案中的w wR w wR的第二个空格处,对于第三个字符串w,设它

2017-08-08 09:54:56 223

原创 【BZOJ】1030 [JSOI2007]文本生成器 AC自动机+DP

题目传送门经过这道题的练习,我对AC自动机有了更加深刻的理解:怎么计算AC自动机需要的数组大小。(话说为什么我以前不会?大概是以前太瓜皮了吧……)这题的题目大意就是让我们求构成长度为m的文本串,且文本串内至少包含一个模式串的方案总数。我们可以用集合的思想,把题目转化成构成长度为m的文本串的方案数减去构成长度为m的文本串中不包含任意一个模式串的方案数。然后考虑AC自动机,我们把每

2017-08-01 22:06:19 264

原创 【BZOJ】1212 [HNOI2004]L语言 Trie

题目传送门这题连AC自动机都省略了,直接把所有模式串插入Trie树中,然后对于每个文本串,暴力枚举当前节点以后的子串是否在Trie树中存在。因为这题的模式串长度不大于10,n和m都不大于20,所以暴力枚举就可以轻松水过。附上AC代码:#include #include using namespace std;int n,m,c[2010][26],size,f[100001

2017-08-01 20:49:09 208

原创 【洛谷】3796 【模板】AC自动机(加强版)

题目传送门这题嘛,就是一个AC自动机的模板。主要是巩固一下今天学的AC自动机。在构造Trie树的时候在每一个字符串结尾的叶节点上标记一下该节点属于第几个字符串,然后对文本串跑一边AC自动机,对每一个经过的节点计数一下。然后把每一个模式串按计数从大到小sort一下,第一个模式串的计数就是答案,然后向后枚举和答案相同的模式串即可。附上AC代码:#include #include

2017-08-01 20:22:39 338

原创 【洛谷】3808 【模板】AC自动机(简单版)

题目传送门终于看懂啦!终于学会了AC自动机啦!(Flag立起)写篇博客梳理一下自己的思路吧。在文章的开头,必须先放上一些大佬的博客来压压场面:我选的当然是ZZK大佬,神犇传送门然而AC自动机的原理其实是比较好理解的,就是把Trie树和KMP的思想结合起来。这么说起来KMP就是单个字符串的AC自动机啊。(雾)给出许多模式串,把这些字符串都加入到Trie树中,在每个字符串结尾的叶子节点

2017-08-01 13:57:39 587

空空如也

空空如也

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

TA关注的人

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