自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 bzoj2658: [Zjoi2012]小蓝的好友(mrx)

传送门:http://www.lydsy.com:808/JudgeOnline/problem.php?id=2658思路:显然答案=总矩形数-没有点的矩形数然后可以考虑用扫描线,现在只计算边界在这条线上的举行书,对每个点记录一个高度h[i],表示这条线上的这个点能走多远。因为数据随机,所以我们可以用h[i]当treap的键值,至于平衡树的值,自然就是位置了。然后我们就可以根据h

2015-08-20 11:53:47 1545

原创 bzoj1895: Pku3580 supermemo

传送门:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1895思路:fhq_treap。其他操作都好办,对于revolve操作其实就是交换两个区间而已,知道这一点就没有什么了。(在bzoj srand(time(0))会0ms RE.....)#include#include#include#include#

2015-08-20 09:13:34 755

原创 uva10829 L-Gap Substrings

传送门:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=20&page=show_problem&problem=1770思路:这题和上一题SPOJ687的思路一样,也是枚举长度,再对于i和i+j+L向前向后匹配,但是这一题只能在后面接一个反串。#include#incl

2015-08-18 15:31:29 588

原创 spoj687 REPEATS

传送门:http://www.spoj.com/problems/REPEATS/思路:又是一道论文题。论文上是这么说的这题用到了枚举长度的方法,往后匹配我们只要看两个后缀的LCP即可,而往前匹配,一个显然的做法是把串反过来,接到后面看对应的后缀的LCP。实际上并不需要这样,我们只需要看它还差几个字符就可以是循环次数加1,那我们就往前移这么多位,看这两个后缀的LCP长度是否足够

2015-08-17 11:50:36 884

原创 bzoj4199&uoj131: [Noi2015]品酒大会

传送门:http://uoj.ac/problem/131思路:先求出height,然后根据排名重新给后缀标号,按height从大到小做,每次合并i和i-1,用并查集维护,更新答案。#include#include#include#define max(a,b) (a>b?a:b)#define min(a,b) (a<b?a:b)const int maxn=300010;u

2015-08-16 16:23:00 1778

原创 codeforces 232D. Fence

传送门:http://codeforces.com/problemset/problem/232/D思路:首先就是差分,设d[i]=a[i+1]-a[i];然后题目的”匹配"就可以转化为差分数组每一位的和为0也就是这段区间取相反数之后可以与原区间匹配。这就可以转化为字符串问题。设当前询问为(x,y)把整个串取相反数,再复制到后面,用后缀数组向上向下二分出可行区间(lcp(s

2015-08-14 18:02:35 581

原创 bzoj3676: [Apio2014]回文串

传送门:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3676思路:首先要知道一个结论,本质不同的回文串的个数是O(n)的。从manacher的过程就可以看出来,使最远边界扩展的回文串才是与之前本质不同的,边界只会扩展到n,所以个数是O(n)的然后对于每个本质不同的字符串,在后缀数组里向上向下二分,找出它的出现次数即可得到答案。

2015-08-13 17:16:57 781

原创 bzoj1031: [JSOI2007]字符加密Cipher

传送门:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1031思路:非常水的后缀数组,把串复制一遍到后面,后缀排序即可。#include#include#includeconst int maxn=200010;using namespace std;int n,t1[maxn],t2[maxn],sa[maxn],ran

2015-08-13 17:06:39 592

原创 bzoj3585: mex

传送门:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3585思路:又是一道莫队+分块。对权值分块,大于n的直接不用管。#include#include#include#include#includeconst int maxn=200010,maxb=450;using namespace std;struct

2015-08-12 15:35:50 507

原创 bzoj2821: 作诗(Poetize)

传送门:http://www.lydsy.com:808/JudgeOnline/problem.php?id=2821思路:分块大法好。。。分成sqrt(n)块,先预处理出连续的块的答案,f[i][j]表示第i块到第j块的答案。然后再开一个前缀和数组sum[i][j]表示前i串第j种字符出现的次数。对于一组询问[l,r],先得出连续的块的答案。对于分散的两端的块,暴力考虑每个

2015-08-12 10:05:20 818

原创 bzoj3809: Gty的二逼妹子序列

传送门:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3809思路:第一反应是莫队+树状数组,复杂度O(n^1.5*logn)TLE。。。于是就有了一个想法,分块维护美丽度,再套一个莫队。这样莫队移动端点就是O(1)的,每次询问就是O(n^0.5)然后就卡过了。。。#include#include#include

2015-08-11 16:13:42 652

原创 bzoj3289: Mato的文件管理

传送门:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3289思路:比较裸的莫队。交换次数显然是逆序对个数...然后考虑怎么从[l,r]的逆序对个数得到[l,r+1]的逆序对个数。先离散化,用树状数组维护权值,我们只要考虑对于新加进来的这个数,原区间中有多少个数大于它,拿区间长度去减就可以得到这个数的贡献。删除一个数类似

2015-08-11 10:09:10 1201

原创 bzoj3052: [wc2013]糖果公园

传送门:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3052思路:带修改的树上莫队。比不带修改的多加上一个时间维。对于时间的移动,那么就模拟一下这段时间的修改,更新答案。然后块的大小要设为n^(2/3)。至于时间复杂度的证明...取B = n ^ (2 / 3),设 nBlo为块的个数,用bloNum[v]

2015-08-10 17:13:40 536

原创 bzoj3757: 苹果树

传送门:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3757思路:像这种链剖 or lct没法做的就是树上莫队了...不是树上的莫队就是按询问的左端点所在的块为第一关键字,右端点为第二关键字。但是树上的就不同了,树上不是区间。于是我们就进行树分块——见bzoj1086注意这个分块是不需要保证每块的点都联通的,这个分块只

2015-08-10 09:12:01 1269

原创 bzoj2038: [2009国家集训队]小Z的袜子(hose)

传送门:http://www.lydsy.com:808/JudgeOnline/problem.php?id=2038思路:首先对于一个[l,r]的询问,设col[i]表示第i种颜色在这一区间内的个数,那么随机抽到相同一对的概率就是∑C(col[i],2)/C(r-l+1,2)然后有:∑(col[i]^2-col[i])/((r-l+1)*(r-l))然后我们发现得到了[l,r]

2015-08-09 09:27:14 2139

原创 bzoj3343: 教主的魔法

传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3343思路:分块大法好...分块,每块内部保持有序。修改时,给完整的块打标记,两段不完整的暴力改询问时,给完整的块二分查找,两段不完整的暴力查。#include#include#include#include#includeconst int maxn=10000

2015-08-08 11:24:35 603

原创 Codeforces 235B Let's Play Osu!

传送门:http://codeforces.com/contest/235/problem/B思路:设a[i]为第i段连续的O区间的长度,那么答案就是∑a[i]^2。因为要算平方,那么就可以转化为点对贡献。n^2=C(n,2)*2+n;也就是说对于每对点i,j,表示i到j这一段都是O,ij这个点对对分数的贡献是2,对期望的贡献是2*π p[k] (i然后就是短的可怕的代码。

2015-08-08 10:16:56 641

原创 bzoj2337: [HNOI2011]XOR和路径

传送门:http://www.lydsy.com:808/JudgeOnline/problem.php?id=2337思路:看到异或,那就按位做。假设现在在做第i位,为了描述方便,现在的边权是val[y]&(1设f[x]表示x到n的路径异或和为1的期望,那么就有方程f[x]=∑f[son[x]]*(1-val[y])(如果边权为0)+(1-f[son[x]])*val[y](如果

2015-08-08 09:57:02 2044

原创 bzoj3143: [Hnoi2013]游走

传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3143思路:首先贪心是很显然的,为了使分数最小,期望到达次数越多的,编号就应该给的越小。直接设边的期望列方程比较复杂。所以我们换一个思路,先解出每个点的期望到达次数,那么边的期望次数就可以算出来了。设边为y,与它相连的两个点为a,b,点的期望次数为f[a],f[b],度数为de

2015-08-07 11:14:08 1842

原创 Codeforces 168D Wizards and Huge Prize

传送门:http://codeforces.com/problemset/problem/168/d思路:这题比较恶心,细节很多,不过还好cf可以看数据...首先考虑一个弱化版,只会横着或竖着以及横着和竖着一起来。我们可以发现,一次操作后就相当于把一个大的游戏分成1或2或4个独立小游戏SG值与位置也有关系,所以SG[u][d][l][r]表示左上坐标为(u,d)右下坐标为(l,r)

2015-08-06 17:48:17 578

原创 bzoj1188: [HNOI2007]分裂游戏

传送门:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1188思路:这题比较特殊,每个豆子是一个独立的游戏,SG的下标是豆子所处的位置。知道了这一点就很好做了。首先对于一个位置的两个豆子,一个人走一步,另一个人也可以走这一步,所以就抵消了从SG函数的角度理解,这两个豆子的SG值相同,最后反正会被异或掉。所以豆子数等于a[

2015-08-06 17:11:30 1666

原创 bzoj3576: [Hnoi2014]江南乐

传送门:http://www.lydsy.com:808/JudgeOnline/problem.php?id=3576思路:每堆石子都构成一个独立的游戏,所以SG[x]就表示只有一堆数量为x的石子的游戏的SG值,显然当x然后我们枚举每种分法,可以得到所有的SG值。但是这是O(n^2),TLE....为了降低复杂度,我们发现了一个很神奇的性质n除以m最多只有O(根号n)个不同的值。

2015-08-06 16:52:21 1130 1

原创 bzoj2066: [Poi2004]Gra

传送门:http://www.lydsy.com:808/JudgeOnline/problem.php?id=2066思路:首先谁移到m-1谁就输了,这是多么显然啊....其实这个可以转化为上一篇中的阶梯NIM。连续的一堆就是一个阶梯上的石子,两个连续的一堆间隔的空阶梯数是空格数-1(这点一定要注意)然后考虑对于连续的一堆棋子,如果我们从中间移走一个,使之变为数量为x和y的两段,

2015-08-06 16:06:23 809

原创 bzoj1115: [POI2009]石子游戏Kam

传送门:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1115思路:首先差分,求出相邻两堆石子的个数之差,要求单调不降就是差分数组大于等于0。然后我们考虑在第i堆移走j个,就等价于i+1与i的差扩大j,i与i-1的差缩小j。这样就转化为另一个经典的游戏模型,阶梯NIM。有n个阶梯,每个阶梯上都有一定数量的石子,每次都可以移任

2015-08-06 14:43:37 908

原创 Codeforces 305E Playing with String

传送门:http://codeforces.com/problemset/problem/305/E思路:首先每个字符都可选的子串可以看成一个独立的游戏,那么最终的答案就可以通过所有独立游戏的SG值的异或和得到。代码:#include#include#includeconst int n=5010;using namespace std;int sg[n];char

2015-08-05 17:38:16 804

空空如也

空空如也

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

TA关注的人

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