自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(83)
  • 收藏
  • 关注

转载 Good Bye 2015 D. New Year and Ancient Prophecy

D. New Year and Ancient Prophecytime limit per test2.5 secondsmemory limit per test512 megabytesinputstandard inputoutputstandard outputLimak is a little...

2016-01-01 15:11:00 89

转载 轮廓线DP POJ3254 && BZOJ 1087

补了一发轮廓线DP,发现完全没有必要从右往左设置状态,自然一点: 5 6 7 8 91 2 3 4如此设置轮廓线标号,转移的时候直接把当前j位改成0或者1就行了。注意多记录些信息对简化代码是很有帮助的,尤其对于我这种代码经常错的一塌糊涂的人来说。。呆马:POJ 3254 Corn Fields#include <iostream...

2015-10-02 20:32:00 101

转载 bzoj 1162 network

树上的区间第k小数,以前写的主席树是一直MLE的,后来看到一种在初始化的时候的优化:直接DFS这颗树,得到每个点的主席树,然后更新的时候另外对DFS序建主席树,答案加上初始每个点的主席树,这样在初始化每个点的时候就不需要用BIT维护了,省去的空间正好AC了这个题。呆马: 1 #include <iostream> 2 #include <cstd...

2015-10-02 19:31:00 105

转载 Hiho 1232 北京网络赛 F Couple Trees

给两颗标号从1...n的树,保证标号小的点一定在上面。每次询问A树上的x点,和B树上的y点同时向上走,最近的相遇点和x,y到这个点的距离。比赛的时候想用倍增LCA做,但写渣了。。。。后来看到题解是主席树就写了一发呆马: 1 #include <iostream> 2 #include <cstdio> 3 #include &lt...

2015-10-02 19:27:00 90

转载 Hdu 4681 2013 Multi-University Training Contest 8 String

带跨越式的LCS,同样是在朴素的LCS上加入一种跨越一段的转移,这样我们要预处理出跨越一段给定串的转移函数。这个题同样可以正反两边LCS做呆马: 1 #include <iostream> 2 #include <cstdio> 3 #include <algorithm> 4 #include <cstring&...

2015-10-02 19:22:00 63

转载 Hdu 5489 合肥网络赛 1009 Removed Interval

跳跃式LIS(nlogn),在普通的转移基础上增加一种可以跨越一段距离的转移,用一颗新的树状数组维护,同时,我们还要维护跨越完一次后面的转移,所以我用了3颗树状数组。。比赛的时候一句话位置写错了,然后就。。。雪崩呆马: 1 #include <iostream> 2 #include <cstdio> 3 #include &lt...

2015-10-02 19:16:00 66

转载 Hdu 5493 合肥网络赛 1010 Queue

在线求第k大,第一次用二分+树状数组写。。。比赛的时候分治啊,splay啊,主席树啊换来换去,然而以前为什么不知道可以这么写。。。 1 #include <iostream> 2 #include <cstdio> 3 #include <algorithm> 4 #include <cstring> 5 #in...

2015-10-02 19:10:00 96

转载 Hiho coder 1236 2015 北京网络赛 Score

五维偏序。。一开始被吓到了,后来知道了一种BITSET分块的方法,感觉非常不错。呆马: 1 #include <iostream> 2 #include <cstdio> 3 #include <algorithm> 4 #include <cstring> 5 #include <cmath>...

2015-10-02 19:05:00 97

转载 JAG Summer 2012 Day 4 C Connect

状压dp,由于枚举两维状态会GG,所以只枚举当前位置前m个的状态,就是这个样子大概= =;呆马: 1 #include <iostream> 2 #include <cstdio> 3 #include <algorithm> 4 #include <cstring> 5 #include &...

2015-10-02 19:02:00 81

转载 CF 484E - Sign on Fence

E. Sign on Fencetime limit per test4 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputBizon the Champion has recently finished pain...

2015-09-08 10:47:00 106

转载 关于树状数组区间最值

居然最近才发现BIT是可以用来求最值的233,道理和线段树差不多,因为树状数组里每个点存储的数据范围是[i-lowbit(i)+1,i],而任意一个区间都是可以被许多段这样的小区间所覆盖的,那么我们就可以用这些小区间的最值来更新所求区间的最值了。 1 struct max_bit 2 { 3 int s[maxn]; 4 int num; 5 ...

2015-08-18 18:55:00 101

转载 Gym 100500B

题目给了四个轮子,每个轮子上有按顺序排列的n个数,要求适当旋转每个轮子,使得四个轮子相同行数相加和相同。首先,可以计算出每一行的和应该是多少,记为Sum。然后固定第一个轮子,二重循环枚举2、3轮子,然后O(n)判断1+2+3是否等于Sum-4,这样时间复杂度是O(n^3)。那么,只要把判断过程复杂度尽量降低就行了。假设每个轮子最大的数是W,那么我们可以把每个...

2015-05-12 23:24:00 71

转载 RQNOJ Bus

H城是一座小城市,前几日才刚刚建立公交系统,且只有一辆公交车。于是,如何最大化这唯一一辆公交车的载客量成了亟待解决的问题。H城的俯视图可以近似地看成是一个棋盘网络——共有N行M列,从南向北,每行从1到M标号,从西向东,每列从1到N标号。经实地考察,公交总公司选定了K个可以设为站点的地方,其中第K个站点位于第Xi列,第Yi行,预计每天有Pi名乘客需要在此乘车。设有序数对(X,Y)表...

2013-11-07 17:36:00 77

转载 关于加权的LIS问题

蒟蒻Zigzag正在准备联赛......这个算是这几天做的唯一一个值得写一写的题吧。首先LIS的N^2暴力dp应该都会写,就是F[i]=Max{F[j]}+1那么加权的就吧后面的1换成数的权值就行了,如果优先长度的话加一些判断就行了。那么O(nlogn)怎么写?LIS的Nlogn应该都会写,就是记一个数组D[i]表示长度为i的LIS的末尾的最小值,...

2013-11-07 17:23:00 165

转载 bzoj3126 [Usaco2013 Open]Photo

  省选前最后一天填坑......  其实这个题早就想过,一直懒得写。我发现我写单调队列一次一个样,真是郁闷。  简述题意就是给你一个n长度的数轴和m个区间,每个区间里有且仅有一个点,问能有多少个点。  我们考虑用f[i]表示前i个位置能放多少个,每一步决策有两个限制:1.每个区间里要有一个点,这样我们可以确定决策区间左边界;2.每个区间里只能有一个点,这样我们可以确定右边界...

2013-05-17 09:06:00 89

转载 bzoj3100 排列

  这个题有点恶心啊,总觉得以前做过,可就是想不出来。最后在发现是meng神出的一次模拟赛题= =当时我还P都不会呢...  这个题有两个关键点,一个是选取的子序列内不能有重复,二是选取的子序列要是一个排列(当然这包含了一)。首先如果确定了不会重复,那么只要子序列内的数的和等于(len+1)*len/2就行了,那么怎么确定不重复呢?  我们可以O(N)时间求出来每个数两边第一个和...

2013-05-16 20:07:00 96

转载 bzoj1444 [Jsoi2009]有趣的游戏

  这个题是一道AC自动机上的概率DP,可以帮助理解一下AC自动机的结构。  首先我们把所有的串插入trie,建立AC自动机,求一下转移函数(相当于构造一个trie图),那么就可以概率DP了。首先到达每个点的概率为变量,然后我们要求的就是到达接受状态(也就是每个串的结尾对应的状态)的概率。注意到了接受状态就不必往下转移了,因为游戏就此结束了。注意有一个限制是必须要加的,就是所有接受状...

2013-05-15 21:29:00 68

转载 bzoj1449 [JSOI2009]球队收益

  这是一道凸费用的题,需要用到拆边的转化。  具体是这样,首先列出关于流量xi的费用式子:f(xi)=ci*xi2+di*(si-xi)2=(ci+di)*xi2-2*di*si*xi+di*si 其中si表示i进行的总常数,xi表示胜场数(也就是规定的流量)。显然这样的式子是不能定费用的,但我们可以求一下每增加1的流量费用的改变量:f(xi)-f(xi-1)=(ci+di)*(2...

2013-05-15 15:31:00 95

转载 poj3415 Common Substrings

  一道字符串好题。网上大多解法是后缀数组+栈扫描,大致思想是按K分组以后统计s,t中不同公共字串的个数。但这种方法我实在是理解不能......  其实,用后缀自动机来考虑这个题可能会好一点。首先,我们给S串建立后缀自动机,然后让T串在S串上跑一下匹配,这是后缀自动机的经典操作。这样我们可以求得T的每一位向前最大能匹配多少位,用这个数目来统计答案。但是有一个问题,就是假设T的某一位u...

2013-05-15 09:48:00 80

转载 三维偏序

贴个三维偏序的模板吧。注意清空bit的时候操作数不要和序列长线性相关。如果上一个题插入的数是无序的话,大概这么做就行了。 1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 #include<cmath> 5 #include<cs...

2013-05-14 08:56:00 62

转载 bzoj3144 [Hnoi2013]切糕

  这个题是个挺经典的最小割。  这个题的关键是如何限制h之差不超过d。首先我们按高度分层,每层的点向下一层相同位置的点连边,边权设为点权(也就是说我们要多设一层),然后如果我们割掉这条边就意味着选择了下面这个点。然后,对于h之差的限制,我们把k+d层的点向k层的四周的点连+oo边,也就是说如果我们割掉了一条边,就不能选择+oo的边连接的上面的边,因为选择了这条边,如果再选择上面的边...

2013-05-13 22:04:00 72

转载 bzoj3173 [Tjoi2013]最长上升子序列

  这个题...被恶心到了。  如果插入的数是无序的话,貌似就要做三维偏序了= =,但这个题就不需要了哈。  其实,LIS是可以用bit做的,每次我们可以求出以当前插入的数为结尾的LIS长度,也就是查询x的前缀max,插入的时候把查询结果+1插入bit。我们看到,如果插入的数的递增的话,要么新的LIS是以x结尾,要么不变,于是扫一遍就好了。  但是我们得知道插入数的实际位置,...

2013-05-13 21:49:00 76

转载 my APIO2013

Day1   到北京了,记不得上一次是什么时候来的了,看到拥堵的公路感觉还真是令人心烦。 第一次到北大,这里是万千中国学子梦想中的圣地。这里的一砖一瓦,和其它的大学基本无异,只是学术气氛比较浓厚吧。 然后就是三分懂得讲课了,记得老李说出来听课只是让你知道有这么个东西,然后回去自行解决。大概是这样吧,再认真也只能听个思路,具体实现的话还不知道要花多少工夫呢。...

2013-05-12 22:30:00 106

转载 bzoj3143 [Hnoi2013]游走

这个题是让你给遍赋权,问1-n路径的最小期望值。显然只要我们知道了每一条边经过次数的期望值,我们就可以贪心地给边赋权了。但是要求边的期望值会很恶心,因为每条边正着走和反着走对其它边的贡献是不同的。于是我们考虑求每个点经过的次数的期望,那么每条边经过次数的期望就是它的端点的期望/端点的度数。设f[i]表示i点经过次数的期望,那么f[i]=Σf[j]/d[j] (j->i)...

2013-05-07 23:17:00 72

转载 bzoj2337 XOR和路径

最近高斯消元刷的有点多啊。但这个题并不是解xor方程的,其实xor跟这个题实在是没有太大的关系。对于这种路径上求xor的题,我们可以逐位考虑,这样就变成了0和1之间的运算。那么对于每一个点,我们记录这个点出发到n的期望xor和f[i],显然f[n]=0。那么f[i]=Σf[j]/d[i](w[i,j]=0)+Σ(1-f[j])/d[i](w[i][j]=1),为什么是1-f[j]...

2013-05-07 23:10:00 80

转载 bzoj2115 xor

这个题网上题解挺多的,讲的也挺详细的,所以我就不必过多赘述。大体思路就是任意选一条1-n的路径,和一些独立环xor起来得到一个最大值就是答案。注意个和路径不相交的环,那么它们xor起来的结果的意义就是从路径上任意一点走到环,遍历一遍再从原路返回路径,路径连接环的那段被走了两次,xor值抵消。注意独立环的个数有m-n+1个,求得时候dfs,每条dfs树的非树边对应一个环。xor...

2013-05-07 10:00:00 58

转载 bzoj2844 albus就是要第一个出场

这个题有了hdu3949那个题的基础就非常好做了,因为这两个题求得东西是对偶的....这次我们要求某个数是第几个出现的(不去重),那么我们只要知道它去重的排名,再乘上每个数重复的个数(2n-m),加上1就好了。还是高斯消元,不过要注意的是这里的高斯消元和普通的解xor线性方程还不一样,因为我们是要得到一组基数,代表从高到低的一些二进制位,所以我们要从最高位的元开始找,并且消的时候...

2013-05-07 08:16:00 61

转载 hdu3949 xor

这个题是用来研究xor性质的一道好题。首先我们可以暴力地找出些规律,我们发现不管拿出多少个数,他们能xor到的数,出现的次数都是一样的,并且都是2的倍数。事实上,我们不论用原数ai还是ai xor aj得到的数,去xor起来得到的数都是这些。这样我们可以想方设法地化简我们用到的基数,也就是找到一组基数使得它们能够xor出所有原数能xor出的数,并且要尽量简单。我们可以模仿高斯消元...

2013-05-07 08:09:00 101

转载 bzoj3105 [cqoi2013]新Nim游戏

传统的Nim游戏是这样的:有一些火柴堆,每堆都有若干根火柴(不同堆的火柴数量可以不同)。两个游戏者轮流操作,每次可以选一个火柴堆拿走若干根火柴。可以只拿一根,也可以拿走整堆火柴,但不能同时从超过一堆火柴中拿。拿走最后一根火柴的游戏者胜利。本题的游戏稍微有些不同:在第一个回合中,第一个游戏者可以直接拿走若干个整堆的火柴。可以一堆都不拿,但不可以全部拿走。第二回合也一样,第二个游戏者也有...

2013-05-06 17:05:00 62

转载 Sset

神犇考题第三题:设 S ={x|x∈Z,1≤x≤n}给定 N 个 S 的子集 Si,每个集合有一个权值 Wi。这 N 个集合满足其中任意 K 个集合的并集中至少有 K 个元素。请从中选取若干个集合(可以不选),使得其并集的元素个数恰等于选取的集合数,且这些集合的权值和最小。考试的时候觉得这个题相比另外两个挺可写的,于是就使劲想,想出了最大权闭合图,想出了每个集合代表一个数字,可就...

2013-05-04 16:21:00 104

转载 bzoj2752 [HAOI2012]高速公路(road)

线段树好题。很容易求出要维护的东西的公式,给线段标号,设x,y为左右线段标号,那么其中出现的总和就是Σc[i]*((i-x)*(y-i)+(y-x)),拆开就是Σ(y-x-y*x)*c[i]+(x+y)*i*c[i]-i2*c[i].于是只要维护∑c[i],∑i*c[i],∑i2*c[i]就行了。我一开始想偷懒写bit发现用了bit以后维护的和会升至3维,(⊙o⊙)…三维求和...

2013-05-04 15:03:00 67

转载 bzoj 2004[Hnoi2010]Bus 公交线路

状压DP。f[i][s]表示第i个车站之前的p位的状态为s的方案数,注意这里状态s我们规定第一位为1,并且一共有k个1。这样的话状态一共有C(9,4)=126种,于是设计一个126*126的矩阵,自乘n-m次就可以了;初始状态:11111(m个1)的状态;目标状态:11111(m个1)的状态。bus 1 #include<iostream> 2...

2013-05-03 09:47:00 85

转载 bzoj2001 城市建设

bzoj崩了3天了......本人目前处在无题可交的状态,郁闷啊。不过TY复活了,看到以前写过的代码有点小激动。切入正题,这个题想了好久才写,主体还是分治,只是中间处理部分比较巧妙。这个题GYZ在wc上讲过,思路也很清晰,就是不太好写。过程主要分两个部分(我直接粘解题报告了):1. Contraction 把 L..R要修改的所有边权暂时标记为-∞; 对图做 MST; 此时观...

2013-05-02 16:53:00 57

转载 bzoj2120 数颜色

这篇题解拖了好久......原因是一直不知道该怎么叙述。首先,类似采花那个题,统计答案的时候要找到每个位置之前和它颜色相同的第一个位置pre[i],那么只要这个位置的pre[i]不在查询的[L,R]区间里,就说明这个颜色是这个区间里第一次出现的颜色,答案+1。动态修改的话我们可以用set来实现。然后传统的树套树做法是将序列建一棵线段树,再给线段树每个节点建一棵平衡树,代表[l,r...

2013-04-30 09:06:00 64

转载 bzoj2527 [Poi2011]Meteors

这个题是在GYZ冬令营讲课课件里翻出来的,所以我一开始使劲地往分治上去想,良久,无果··········题意是给你一圈位置,位置上有若干颜色(可以重复),每个颜色有一个需求量,每一个时间给一个段加上一个数,最后问每个颜色最早加到需求量的时间。今天早晨睡觉起来(大概是10点多),赖在床上,YY这个题,突然想到整体二分然后计算贡献似乎非常不错。但是对于序列的处理怎么搞才能把复杂度降下...

2013-04-29 21:40:00 47

转载 bzoj1396 识别子串

貌似是个傻×题啊.......由于贪心地想要刷双,结果被空间卡了半个小时。这个题是问字符串S每一位的最短识别子串是多长(识别子串指包含这个字符且只出现在S中一次的子串)。为了想这个题,我对着SAM的图YY了一天。终于,我发现,从后缀树的角度考虑是比较简单的。因为SAM是一棵逆序的后缀树,那么每一位i的前缀(除了包含在别的前缀里面)所对应的节点一定是后缀树里的叶子节点。那么我们只要...

2013-04-27 17:45:00 62

转载 bzoj1415 [Noi2005]聪聪和可可

算是正式开始接触期望DP了吧,以前在NOIP之前TY比赛里做过一些,基本上都是根据初中的概率知识乱搞的,但事实上这种期望概率动规题还是可以很难的。这个题是看论文上的题解,算是比较基础的期望dp了吧。首先需要预处理一些东西:way[i][j]表示聪聪在i可可在j点时聪聪会走到哪个点,t[i]表示i点的度,next[i][j]表示和i点相连的第j个点是谁(就是可可在i点时可以走到的点的集...

2013-04-27 11:09:00 82

转载 bzoj2631 tree(伍一鸣)

首先如果没做过维护序列这个题的可以先去做一下,对标记有个初步理解,题解在这里。看到了一道LCT练手题,于是果断刷了,这个题主要恶心在传标记上,别的都是基本的LCT操作。那么我就说一下传标吧。链接一个博客Kanari's World这里面讲的不错,下面我只说说我的体会。我习惯把所有的标记在一个过程里下传,下传顺序一般是旋转,覆盖,加减,注意如果有覆盖的话...

2013-04-27 08:22:00 63

转载 bzoj3111 [Zjoi2013]蚂蚁寻路

zjoi2013的题终于做完了,拖了好久,觉得这份题质量挺高的,而且代码量都不是很大,zj的题还是比较注重思路的,而且都可以有不同的解法,甚至可以骗分= =。这个题我一开始只能想出N^4的,后来参考某神的题解发现我多出来的那一维完全是没有用的......但是我还是想总结一下思路,毕竟这种2D的DP做的比较少,以免以后忘掉。首先经过一些列的简化我们发现这个题实际就是求个凹凸不平的形...

2013-04-26 21:19:00 70

转载 HDU4436 str2int

后缀自动机......慢慢体会ing。这个题的题意是给你一堆数字串,让你去重以后问所有字串代表的数字的和(mod 2012)这个题n是10^6级别的,所以要充分利用重复字串的性质。这么考虑,当有许多子串的都添一个末位数字K时,这些子串的和就是原来字串的和*10+子串个数*k。其实这些字串在自动机里面对应的就是一个状态,当这些状态都存在一个指向Q的转移时,就可以把这些状态的sum累...

2013-04-26 16:29:00 73

空空如也

空空如也

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

TA关注的人

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