自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Le Petit Prince

生活充满了希望

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

原创 字符串总结

字符串总结       字符串是YYR讲的,我很高兴,因为他讲得很清晰,就算有表达不清楚的地方,下了课他也细心讲解.       新学的算法有Manacher,和后缀自动机Sam.同时对前面的知识有了很大的提升.       对于以前的算法:       我以前对于KMP理解太浅了,我觉得基本上等于没学.KMP做某一道题的时候甚至用到了数论里的扩展欧几里得来证明.KMP还引出了很多

2017-07-30 21:43:32 411

原创 一个月的总结

这一个月的总结      感谢这一个月,我成长了很多.      我以前总是学竞赛,有的时候有兴奋的感觉,但是脱离太久之后就完全不想再碰他.然而这一个月的某一天放假,竟然突然想要有刷题的冲动!      这绝对前所未有的,要放以前我真的是绝对不想碰竞赛,颓废一天打游戏,舒舒服服过这1天小假.      所以终于尝到刷题的乐趣.有的时候被一些精妙的题目所深深震撼,有的时候一遍又一遍刷

2017-07-30 21:25:49 1769

原创 AtCoder Contest 068 Task D 详解

D - Decrease (Contestant ver.)Time limit : 2sec / Memory limit : 256MBScore : 600 pointsProblem StatementWe have a sequence of length N consisting of non-negative integers. Conside

2017-07-30 20:54:35 657 1

原创 [BZOJ]1717 [Usaco2006 Dec]Milk Patterns 二分答案

1717: [Usaco2006 Dec]Milk Patterns 产奶的模式Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1283  Solved: 692[Submit][Status][Discuss]Description农夫John发现他的奶牛产奶的质量一直在变动。经过细致的调查,他发现:虽然他不能预见明天产奶的质量

2017-07-30 19:26:38 387

原创 [POJ]1743 不可重叠最长重复字串 二分答案

因为要不重复,所以只用二分长度,把排名连续的>mid的分到一起,看同一组隔得最远的数列上的位置相差是否也>mid,若有则为真.有公长且不重叠的长度mid,mid以下的长度自然也可以,所以具有二分性. 用后一个减前一个就能判断题目中所说的变调相同的序列,这是个小技巧,可以自己模拟一下.

2017-07-30 14:30:11 451

原创 [POJ]2774 最长公共子串

Long Long MessageTime Limit: 4000MS Memory Limit: 131072KTotal Submissions: 31075 Accepted: 12573Case Time Limit: 1000MSDescriptionThe little cat is majorin

2017-07-30 11:34:48 488

原创 [BZOJ]2565 最长双回文串 Manacher+单调队列

题解 枚举每一个点左边最远能覆盖自己(或离自己差一个)的回文串中心(注意manacher求出来回文串是最长回文串),右边最远能覆盖自己的回文中心,所以两者之差乘以2就是再每个点取max就是答案,由于有’#‘号,那么实际上不用乘以2.对于最远能覆盖自己的我们用单调队列来维护.我们再考虑’#‘实际就是两个相邻任意的回文串的间隔.所以来回两遍单调队列求最左与最右之后,枚举答案只用枚举’#‘,不过注意左右边界#不可用,因为有+,-.自己画画图就能明白.

2017-07-29 19:39:16 386

原创 [BZOJ]2434 阿狸的打字机 AC自动机+Fail树+树状数组

相信自己的想法,自己的程序,只要算法正确,一定能A的,不要轻易放弃.题解 这道题问一个串在另一串上出现多少次,我们用AC自动机跳某个串上所有的fail必定超时,T的稳到不行...那么我们考虑反正对于某个串A对于另一个串B的询问,问B在A里出现了多少次,就是问A在AC自动机上从根开始的链那些点能跳fail跳到B,那么自然而然的,某些点能跳到B这个点可以理解为这些点在B的子树里,顺着父亲往上爬终究会到达B,那么‘顺着父亲往上爬’其实就等价于跳fail?那么我们对于每个点向他的fail连边,

2017-07-29 11:26:22 465

原创 [BZOJ]2160 拉拉队排练 Manacher+快速幂

题解 因为Manacher求出的是极大回文子串,那么对于长度为7的极大回文子串,那么这个字串一定包含了对文串长度为5的,长度为4的.这道题由于是求奇数的,那么我们就不用考虑偶数的情况,Manacher也就不用插‘#’号了.Manacher处理完了之后记录每个长度的个数,再从大到小,每个长度i的个数加上i+2的个数,这里有点像前缀和.然后我们根据题意从大到小取k个即可,过程中对于每种长度快速幂求值(每种长度有多个),两种长度之间直接相乘(用long long就不会爆),就可以了.

2017-07-28 16:24:07 353

原创 [BZOJ]2882 工艺 最小表示法

2882: 工艺Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 973  Solved: 428[Submit][Status][Discuss]Description小敏和小燕是一对好朋友。他们正在玩一种神奇的游戏,叫Minecraft。他们现在要做一个由方块构成的长条工艺品。但是方块现在是乱的,而且由于机器

2017-07-28 15:01:11 352

原创 [BZOJ]3790 神奇项链 Manacher+树状数组

#include<stdio.h>#include<cstring>#include<algorithm>using namespace std;const int maxn=100010;const int inf=1000000010;char ss[maxn],s[maxn*2];int c[maxn],pal[maxn*2],m,n,ans,num;struct query{ int l,r;}q[maxn];inline bool cmp(query a,query b

2017-07-28 12:12:34 381

原创 [HDU]2222 Keywords Search

Keywords SearchTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 64822    Accepted Submission(s): 21615Problem DescriptionIn the

2017-07-28 11:02:41 351

原创 [POJ]2185 真正的正解

所谓正解?(伪) 1.求的所有行的循环节求max值,再求列的循环节的max值,两者相乘. 反例: 2 6 ABCDAB ABCABC 用1求出来是8.实际上是12. 2.将循环节求最小公倍数,若大于行(列)数就变为行(列)数. 反例: 2 8 ABCDEFAB ABABAAAB 用2算出来因为行的循环节为5,6,最小公倍数30,因为大于8就转化为8,再乘上竖着的2,答案为16. 实际上答

2017-07-27 08:33:44 939

原创 [BZOJ]3261 最大异或和

3261: 最大异或和Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 1954  Solved: 810[Submit][Status][Discuss]Description     给定一个非负整数序列 {a},初始长度为 N。       有   M个操作,有以下两种操作类型: 1 、A x:添加操作

2017-07-26 20:18:46 460

原创 [BZOJ]2741 [FOTILE模拟赛]L

考虑求前缀异或和,那么sum[L-1]^SUM[R]就是L到R得连续异或和,因为我们sum存储的是前缀,又因为相同的数异或为0,且sum[R]包含了sum[L-1],所以两者异或起来,1~L-1的异或贡献被抵消,就只剩下了L~R的贡献.那么问题就转化成为,在L-1到R内选择两个数的sum值异或起来最大.考虑对于一个数 x 的sum,求与他之前的某个数异或起来最大,那么贪心的肯定让高位的1得到保证,由异或的性质可得我们要从高位到低位找到一个数的高位到低位的每一位尽量与x的每一位相反.那么我们对于序列上的每个

2017-07-26 20:00:13 479

原创 [POJ]2406Power Strings KMP

Power StringsTime Limit: 3000MS Memory Limit: 65536KTotal Submissions: 49390 Accepted: 20575DescriptionGiven two strings a and b we define a*b to be their conca

2017-07-25 21:51:03 392

原创 [BZOJ]2351 Matrix

2351: [BeiJing2011]MatrixTime Limit: 20 Sec  Memory Limit: 128 MBSubmit: 896  Solved: 280[Submit][Status][Discuss]Description给定一个M行N列的01矩阵,以及Q个A行B列的01矩阵,你需要求出这Q个矩阵哪些在原矩阵中出现过。所谓01矩阵,就是矩阵中

2017-07-25 20:53:14 421

原创 [BZOJ]3223 文艺平衡树 区间翻转

3223: Tyvj 1729 文艺平衡树Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 4861  Solved: 2851[Submit][Status][Discuss]Description您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5

2017-07-25 15:25:22 474

原创 [BZOJ]1500 维修数列

1500: [NOI2005]维修数列Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 14433  Solved: 4701[Submit][Status][Discuss]DescriptionInput输入的第1 行包含两个数N 和M(M ≤20 000),N 表示初始时数列中数的个数,M表示要进行的操作数目

2017-07-25 14:00:56 399

原创 [BZOJ]3052 糖果公园 树上带修改莫队

3052: [wc2013]糖果公园Time Limit: 200 Sec  Memory Limit: 512 MBSubmit: 1264  Solved: 637[Submit][Status][Discuss]DescriptionInputOutputSample InputSample Input

2017-07-21 20:30:20 348

原创 [BZOJ]4241 历史研究 回滚莫队

几句闲话 orz orz neither_nor(alone_wolf).上次他讲课的时候还没有去看他这道题,后来刷这道题的时候发现他用的是回滚莫队.这道题大多人几乎都用的是分块,然而回滚莫队快的飞起.正好不会回滚莫队,赶紧学习一波. 题解 这道题扩大区间更新操作很简单,但是l,r左右动缩小区间update怎么办?我们就可以用回滚莫队来是区间一直在扩大,回滚莫队讲解:点这里.

2017-07-20 20:13:43 1012

原创 回滚莫队?滚滚滚滚起来!

回滚莫队           这名字真的取的有意思,一开始还不觉得,学了之后发现他真的在回滚.我们回滚莫队排序是按之前的莫队一样将询问  左块右位置 的来排序.        回滚问题特别之处在哪里?        他在滚.        特别之处1             我们对于左右端点都在同一块里的,直接暴力for 1遍统计答案,复杂度根号n.        特别之处

2017-07-20 20:09:55 2253

原创 YJQ的王之蔑视

今天YJQ来讲了第一堂课.   1.讲了一道蛮有趣也蛮烧脑的题,讲完了意犹未尽.   YJQ:"我把这道题给那四个人做,他们都做不起,md还进了国家队,要不是比我冬令营考得高..."   台下;"%%%%%%%%%%%%%%"2.又讲了一道,上网翻翻别人的代码来证明这道题其实是水题.   YJQ:”写得这么长?辣鸡辣鸡...有病吧这么长..."   翻到touris

2017-07-20 19:29:17 1575

原创 待填坑

刷题的从小到大的boss,以下是在以后花很久的时间A掉的题:bzoj         历史研究(回滚莫队)        糖果公园(树上带修改莫队)        维修数列(splay序列终极版)        月下柠檬树(simpson积分)        带插入区间k小值(替罪羊套主席树)        紫荆花之恋(替罪羊+Treap+动态树分治)

2017-07-20 11:12:30 411

原创 [BZOJ]2002 弹飞绵羊 LCT

几句闲话 昨天做bzoj2049的时候还不是特别懂LCT,今天学长来了抓起草稿纸就去问,终于茅塞顿开了...同感hzwer说的:论有一个善良的学长的重要性...觉得可能很快会写一篇通俗易懂的解释LCT文章,但是LCT确实很难讲地说... 咳咳,题解 这道题又是个裸题...因为绵羊从x往后弹飞k相当于从x向x+k连了一条边.而改变x点弹力系数相当于是x向x+k断了一条边(飞不过去了),让x向x+p连了一条边(p为新的弹力系数).他们题目中要问某绵羊在i要弹几次被弹飞.我们建立一

2017-07-20 08:56:08 925

原创 [BZOJ]4237 稻草人 CDQ分治 详细题解

题解 这道题可以用cdq分治做,也可以用线段树做...不过cdq分治代码短并且两者时间复杂度相同...所以还是讲讲cdq分治吧. 我们一开始把整个数组以y值从小到大sort一遍. 我们开始二分. 二分这个数列的位置. 我们会不断的二分,对于某次二分的lf,rg,我们都是先继续不断递归二分这段区间的得到子区间的答案(d等下再说怎么计算区间答案)再来计算这段区间的答案,等下你就会明白为什么. 对于当前的区间(lf,rg),

2017-07-19 20:42:10 1305

原创 [BZOJ]2049 [洞穴勘测] LCT[裸]

几句闲话 终于学LCT了,早就听说LCT的强大功能...不过话说因为splay自带巨大常数,LCT也很慢啊.不过功能也很强就是咯...感觉splay是个好东西.题解 这道题确实是裸得不能再裸的LCT了,你要是懂了LCT的话,你就会知道这道题是大水题,这里暂时没有写LCT的博客,因为还不是很熟练,不敢乱说瞎bb啥的...但是日后一定会填这个坑,比如说以【史上最详细讲解LCT】或【浅谈LCT】或【论LCT】或什么感觉好像很厉害好像国家集训队似的水平的标题出世.

2017-07-18 21:16:14 657

原创 [BZOJ]4810 由乃的玉米田 莫队+bitset

4810: [Ynoi2017]由乃的玉米田Time Limit: 30 Sec Memory Limit: 256 MB Submit: 622 Solved: 306 [Submit][Status][Discuss] Description由乃在自己的农田边散步,她突然发现田里的一排玉米非常的不美。这排玉米一共有N株,它们的高度参差不齐。 由乃认为玉米田不美,所以她决定出个数据结构

2017-07-17 12:23:24 521

原创 [BZOJ]2809 左偏树

因为题目中让我们每个子树选取尽可能多的点数,那我们就用堆来维护,若这可子树总权值>m那么就pop权值最大的点——这是个大根堆,我们用左偏树来合并两个堆.这里有点贪心的思想.自然,我们是从底至上合并的,没合并完一次并在pop结束之后更新答案.若对合并堆——左偏树不理解的,附上讲解:点这里.

2017-07-14 21:48:28 726

原创 可并堆?左偏树?

堆?          对于堆大家想必是很熟悉的了,比如说stl里面的priority_queue就提供了方便的堆操作.当然更不必说pbds(戏称平板电视)里面的配对堆,更是Dijkstra优化的方便好手.简单的priority_queue能实现push,pop,取出top等操作...那么遇到两个堆的信息要合并的时候,我们如何实现呢?这里就是所要引出的概念——可并堆.       可并堆?

2017-07-14 21:38:41 1092

原创 [POJ]1895 Bring Them There 网络流 动态加层

一开始感觉这道题是大水题,结果发现每条路径只能经过一次,并且是一天只能经过一次,即第二天就可以又被经过了.完全没有头绪.想到用网络流,但是并不知道如何来建图.默默的点开了别人的题解....动态加层真的是很妙.那么每层的点是什么?两层之间又是如何连边? 我们设花的最少天数为day,从小到大加,每day++即新的一天,我们就在原来的网络上加上一层,两层之间的线路表示一天.这就是动态加层. 对于每一层,都是一个完整的图.每一层都是所有的点,但是我们连边不在本层之间互相连,而

2017-07-14 11:44:23 560

原创 [POJ]1673 混合欧拉图判定

混合欧拉图判定,用网络流求解.题意 就是给定你一个既有有向边又有无向边的图,要问是否有欧拉回路(即欧拉环),这就是经典的混合欧拉图判定.题解 刚开始拿到这道题什么算法要想不出来,唯一可能就爆搜,因为连存在欧拉回路的充要条件都不知道. 然而这道题使用网络流求解. orz orz orz orz....万能的网络流. kuangbin神犇的讲解太清楚经典了,我这里就不班门弄斧了,上链接:点这里 Tip

2017-07-14 08:34:23 430

原创 [UVA]11478 二分答案+差分约束

二分答案+差分约束.题目大意 就是说你可以进行若干次操作,每次操作将某一点入边权值减少d,出边权值增加d.问在这种情况如何操作使最小的边权最大.题解 每一次操作之间互不影响,所以我们没必要去考虑操作次数,只用考虑最终结果.由于要使最小边权最大,很容易想到二分答案(最小最大问题). 怎么check? 我们二分最小边权x.我们设sum[u]为操作在u上的d之和(或加或减,这里的sum则是最终结果)。对于两个点(u,v),若使(

2017-07-13 19:39:26 458

原创 [POJ]3164 Command Network 朱刘算法

朱刘算法裸题.附上朱刘算法讲解.

2017-07-13 16:09:10 376

原创 Codeforces 808F Card Game

Digital collectible card games have become very popular recently. So Vova decided to try one of these.Vova has n cards in his collection. Each of these cards is characterised by its power pi, magic num

2017-07-13 10:42:47 561

原创 UVA1391【LA3713】 经典2-SAT

题意:给出一些宇航员他们的年龄,x是他们的平均年龄,其中A任务只能给年龄大于等于x的人,B任务只能给小于x的人,C任务没有限制。再给出m对人,他们不能同任务。现在要你输出一组符合要求的任务安排。这道题是刘汝佳蓝书上讲了的题,在这里套用他的模板,实在是好用啊…#include<stdio.h>#include<vector>#include<cstring>using namespace std

2017-07-13 09:15:40 387

原创 [POJ]2942 圆桌骑士 点双连通分量 + 二分图染色

#include#include#include#includeusing namespace std;#define clear(a) memset(a,0,sizeof(a))#define maxn 1010bool mark[maxn],vis[maxn];int point,all,indexx,cnt,num,n,m,x,y,ans;int h[maxn],col[m

2017-07-13 09:04:55 521

原创 bzoj3732 Network 最小生成树+LCA+树上倍增

这道题不就是Noip2013的t3吗…没想到bzoj换了个包装.noip2013货车运输是最大生成树,这里是最小生成树. 因为要是最大的边最小,则一定存在于最小生成树中.我们只需要跑一遍kruskal再树上倍增求LCA的同时求最大值即可.#include<stdio.h>#include<algorithm>const int maxn=100001;const int Uplimit=16

2017-07-10 20:45:10 571

原创 bzoj3687 简单题 bitset

这道题一开始表示一脸懵逼,题意虽简短但都反应了一会儿.从异或的性质可知,一个数异或他自己是等于0的,所以一个数如果出现了偶数次的话,那就相当于0.凑成子集i的方案总数设为dp[i],那么dp[i+a[j]]+=dp[i],一个简单的背包.因为只用判断奇偶,奇数为1,偶数为0,我们用bitset来进行位运算,第i位表示子集i出现次数是奇还是偶.我们把之前整个bitset向左移a[j]位,因为第i为表

2017-07-10 15:40:55 529

原创 n皇后 位运算

清晰的讲解:http://blog.csdn.net/xadillax/article/details/6512318 代码:#include<stdio.h>int n,ans,lim;inline const int read(){ register int f=1,x=0; register char ch=getchar(); while(ch<'0'||ch>

2017-07-10 15:25:48 414

空空如也

空空如也

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

TA关注的人

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