自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

守望、御神木

别来无恙否,何以酬一笑

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

原创 浪逼水题狗wyfcyx

在这里记录一下看过的题目的思路,有时间写。 BZOJ1524: [POI2006]Pal 考虑x+y是一个回文串。 若lenx=lenylen_x=len_y,显然应该有x=yx=y。 若lenx<lenylen_x<len_y,显然应该有xx的反串是yy的后缀且剩下的一部分是回文串。 对于这种情况,我们不妨枚举yy,枚举其反串的前缀并利用hash判断剩下的部分是不是回文串。 若lenx

2015-09-14 20:57:33 1597

原创 弱省胡策系列简要题解

现在不是非常爽,感觉智商掉没了,就整理一下最近弱省胡策的题目吧. 其实题目质量还是很高的. 如果实在看不懂官方题解,说不定这里bb的能给您一些帮助呢?【弱省胡策】Round #0 A20%数据,O(n4)O(n^4)傻逼dp. 40%数据,O(n3)O(n^3)傻逼dp. 100%数据,令f(x1,y1,x2,y2)f(x_1,y_1,x_2,y_2)表示从(x1,y1)(x_1,y_1)走

2015-06-18 20:19:46 2073

原创 再探第k短路

其实这是一个很古老的姿势啦… 只不过今天跟同学讨论A*算法求k短路的时候,同学不信A*算法能被卡掉. 于是我翻了翻课件找出了一种nn元环的特殊情况,卡掉了A*算法. A*算法是只有到达终点的时候才能统计答案,这导致可能拓展很多个状态才能得到一个用来更新答案的有效状态. 例如一个nn元环,当我们到达终点之后,可能还要拓展nn次才能得到下一个状态.于是若求kk短路时间复杂度就为O(nk)O(nk

2015-05-20 20:30:15 3402

原创 PKUSC预热__被水题虐QoQ

感觉最近有些不在状态,几场考试考的都不是非常好. 然后我这种大弱渣显然只能去P啦~~~ (虽然觉得ACM赛制还是要跪 不过总要做出选择吗.POJ1832首先递推算出fif_i表示第ii位到第00位全部变成00的最小移动次数. gig_i表示将第ii位变成11,同时第i−1i-1位到第00位都变成00的最小移动次数. 利用数学归纳法可以得到: 若有一个在第ii位的11,将它变成00需要的最

2015-05-19 08:39:57 2016

原创 混进省队后的进化系统

总算是有惊无险的混进省队啦,这代表着我不用滚回去上课辣! 但是像我这种傻叉肯定是不行哒,于是需要一个进化系统! (觉得像我这种人太弱,就大体上设定一个进化方向,不要限定时间啦…)Task1:动态树分治(完成情况0%)BZOJ3435: [Wc2014]紫荆花之恋 BZOJ3924: [Zjoi2015]幻想乡战略游戏 BZOJ4012: [HNOI2015]开店Task2:经典分块(暂时挖坑

2015-04-24 14:07:19 2702

原创 BZOJ3786 星系探索 蒟蒻出题人给跪

BZOJ3786 题解、数据、标程

2014-12-04 19:54:14 2327 4

原创 写在NOIP之前-蒟蒻我到底会什么

明天就是DAY1了吗。。。好快。不过也到了检验自己实力的时候了!现在闲的蛋疼,不妨整理一下我会什么。考试经验\技巧必须对拍!!!否则就是作死。先看题把控一下全局。数论\数学欧拉线性筛:在O(n)时间内得到n以内的所有素数,常用来预处理。另外也很容易求解积性函数。欧拉函数:phi(n)表示不大于n的正整数中与n互质的数的数目。单独求的话,直接分解质因数用容斥原理计算。求一大堆

2014-11-07 21:23:33 1179

原创 BZOJ1930 [Shoi2003]pacman 吃豆豆 费用流

题目大意:在二维平面上有若干个点,求出两条不相交的二维LIS,使得上面包含的点的数目最多。思路1:暴力建图注意到不相交这个条件根本没用,画图可以发现如果相交的话,我们总可以通过交换一些点使得两个序列不相交。那么问题转化为求出两个没有公共点的上升子序列,使得长度之和最大。对于这种情况我们利用最大费用流求解。设(a,b)分别表示一条有向边的流量和费用。S->S' (2,

2014-10-29 11:06:56 1924

原创 POJ3243 EXT-BSGS算法

做这道题之前需要先做一下POJ2417,我的题解:http://blog.csdn.net/wyfcyx_forever/article/details/40538515现在来看这个问题:Ax≡B(mod C)已知A,B,C注意这里的A,B,C没有任何限制!那么考虑我们的传统的GSBS算法为何不能解决这个问题:假设枚举的某个i,我们要利用拓展欧几里得求出存不存在某个A^j(0那

2014-10-28 13:51:58 1547

原创 POJ2417 Baby-Step-Gaint-Step 算法

考虑一个问题:A^x%p=B,给定A,B,p,求x的最小非负整数解。在p是质数的情况下,这个问题比较简单。A^x=B(mod P) (P is a Prime, A,BLet m = floor(sqrt(P))Put A^0,A^1,...A^(m-1) into HashSet(You Can Also Use Map in STL),for Example M[A^i]=i.

2014-10-28 12:27:20 1530

原创 POJ3017 Cut The Sequence

题目大意:将一个非负整数序列切成连续的若干段,使得每一段的和均不超过一定值,在此基础上最小化每一段的最大值的和。思路:O(N2)的动态规划方程非常明显:fi=min0≤ji{fj+maxj+1≤k≤i{wk}}这样利用RMQ的预处理即可做到O(N^2).不过这样显然是不能AC的。我们考虑能够进行什么优化。我们发现以下性质:(1)fi≤fj(1≤ij≤

2014-10-24 22:53:17 1010

原创 BZOJ1927 [Sdoi2010]星际竞速

题目大意:自己看中文。。。思路:不难发现,题目等价于让我们求出一些标号上升的子序列精确覆盖全集,每一个子序列的起点一定是利用“能力爆发”   得到的。那么我们只需对于每个星球,确定一个前驱就可以了。若是0作为前驱,则转移代价为定位时间;否则转移代价为路径长度。此外一个点的前驱的标号严格小于自己的标号。注意0可以作为多个星球的前驱,剩下的星球只能作为一个星球的前驱。于是转

2014-10-24 17:10:39 1312

原创 BZOJ3689 异或之

题目大意:给定n个非负整数A[1], A[2], ……, A[n]。对于每对(i, j)满足1 注:xor对应于pascal中的“xor”,C++中的“^”。思路:同NOI2010超级钢琴。http://blog.csdn.net/wyfcyx_forever/article/details/40400327我们只需一开始在全局堆中放进去每个数和他之后的数异或的最小值,然后

2014-10-23 16:52:50 1343

原创 BZOJ2006 [NOI2010]超级钢琴

题目大意:给定一个序列,求出k个这个序列的位置不完全相同的子序列,使得每一个子序列的长度均在[l,r]内,并且使得这些子序列的权值和最大。思路:每一个子序列的权值和可以转化为两个前缀和之差。我们考虑以每一个位置为结尾的子序列,它的权值和可以看作是以该位置为结尾的前缀和减去它前面的某个前缀和。那么想要这个子序列的权值和尽量大,那么就要前面的那个前缀和尽可能小。如果数目不够,就第2小。

2014-10-23 16:50:29 2546 1

原创 BZOJ2561 最小生成树

题目大意:给定一个边带正权的连通无向图G=(V,E),其中N=|V|,M=|E|,N个点从1到N依次编号,给定三个正整数u,v,和L (u≠v),假设现在加入一条边权为L的边(u,v),那么需要删掉最少多少条边,才能够使得这条边既可能出现在最小生成树上,也可能出现在最大生成树上?思路:对于某一条边,如果用小于这条边边权的所有边中的一部分就能够使得这条边的两个端点连通,那么这一条边必然不

2014-10-23 16:48:08 1016

原创 BZOJ1355: [Baltic2009]Radio Transmission

题目大意:给出一个字符串,已知它是一个字符串S不断重复后构成的无限长的字符串的一个子串,求S的最短长度是多少。思路:利用KMP算法,答案就是n-next[n].证明如下:图太渣了。。。还有一种情况就是next[n]总之就是原串可以被划分成S的后缀和若干段S,因此是合法答案;而KMP保证Next[n]尽量大,因此n-next[n]是最小答案。代码:#i

2014-10-21 16:42:46 1340

原创 BZOJ3362 [Usaco2004 Feb]Navigation Nightmare 导航噩梦

题目大意:自行脑补。思路:维护两个维度上的带权并查集即可。注意对于题目给出的一堆关系,我们应该添加两对关系。Code:#include #include #include #include #include usingnamespace std; #define N

2014-10-21 16:37:43 1414

原创 BZOJ1827 [Usaco2010 Mar]gather 奶牛大集会

题意:给定一棵树,求出树上的一点,使得树上的所有点到该点的距离之和最小。思路:暴力显然是O(N^2)等死对吧。我们首先将无根树转化为有根树,然后一边dfs求出f[i],size[i].f[i]表示以i为根的子树中所有的点到i的距离之和,size[i]表示以i为根的子树的点数。下面开始脑洞大开:现在对于我们一开始的那个root,我们已经知道了答案。问题就是如何快速

2014-10-21 16:23:30 1143

原创 BZOJ2245 [SDOI2011]工作安排

题意:自行脑补,看懂分段函数是什么就行。思路:显然是最小费用最大流。对于每个工作人员的每一段,从原点到工作人员对应的点连一条费用与流量与这一段其相适应的边。对于每个部件,从其对应的点到汇点连一条流量为需要的数目,费用为0的边。然后就可以出解了。建模还是很显然的。还有这题我写spfa的多路增广TLE了,反倒是不加上多路增广能过。不知道为什么。。。Code:

2014-10-21 16:16:14 1025

原创 BZOJ1025 [SCOI2009]游戏

题意:对于一些长度为n的排列,将其作为一个置换,那么可能有一个自置换的次数使其回到1,2,3,...,n的情况。求对于所有能够回到1,2,3..,n的排列,不同的次数共有多少种。思路:我们将置换划分成循环节的形式,那么我们发现最终可能的置换一定是这种形式:(2,1)(3)(5,6,4)(7)1,2->2,13->34,5,6->5,6,47->7并且,若一段的长

2014-10-18 15:24:15 2107

原创 BZOJ1024 [SCOI2009]生日快乐

题目大意:自行脑补。思路:二分答案。但是如何判断?我们定义递归函数judge(a,b,k)表示长为a,宽为b的蛋糕能否被分为k块。那么每次我们只需枚举划分方法即可,即分为多少块和多少块,横着切还是竖着。当k=1时判断,返回即可。这其中以当前二分的答案Mid作为参数。这样就可以了。Code:#include #include #include

2014-10-17 11:39:32 1069

原创 BZOJ2396 神奇的矩阵

题意:有三个N*N的矩阵a,b,c,判断a*b是否等于c.思路:暴力判断O(N*3),我没试能不能过。正解是随机化算法,随机构造列向量p,然后分别计算a*(b*p)和c*p,比较之。这个过程仅为O(N^2).随机多组即可。Code:#include #include #include #include #include #include using

2014-10-17 11:36:22 1151

原创 BZOJ1040 [ZJOI2008]骑士

题意:基环树最大独立集思路:像这种题就是朴素的树形dp非常容易的,我们用一些技巧转化为变体树。直接套用仙人掌的动态规划做法:(基环树事实上也属于一种仙人掌)首先利用tarjan算法,如果遇到自己与儿子之间的边为割边则按照树边处理。Tarjan后看一下与自己相连的边,如果某个相邻点不是自己的儿子,并且入栈序比自己大,那么说明自己是环上的的最高点,此时我们对环上特别的进行d

2014-10-17 11:16:39 915

原创 BZOJ1016 [JSOI2008]最小生成树计数

题意:给定一张n思路:首先我们将不同的权值从小到大分开考虑。我们证明以下定理:一个无向图所有的最小生成树中某种权值的边的数目均相同。开始时,每个点单独构成一个集合。首先只考虑权值最小的边,将它们全部添加进图中,并去掉环,由于是全部尝试添加,那么只要是用这种权值的边能够连通的点,最终就一定能在一个集合中。那么不管添加的是哪些边,最终形成的集合数都是一定的,且集合的

2014-10-17 10:57:05 6295 1

原创 BZOJ2648 SJY摆棋子

题意:这天,SJY显得无聊。在家自己玩。在一个棋盘上,有N个黑色棋子。他每次要么放到棋盘上一个黑色棋子,要么放上一个白色棋子,如果是白色棋子,他会找出距离这个白色棋子最近的黑色棋子。此处的距离是 曼哈顿距离 即(|x1-x2|+|y1-y2|) 。现在给出N思路:kdtree第一题。kdtree是个什么东西呢?比如现在有一些二维平面上的点,我们按照维度首先进行一次划分:比如第一

2014-10-17 10:36:45 2247

原创 BZOJ1108 [POI2007]天然气管道Gaz

题意:有N个黑点和N个白点,每个黑点只能水平向右和竖直向下延伸,与一个白点配对。权值为两个点之间的曼哈顿距离。求使得n对点均配对最小的配对总权值。思路:假设存在一组解,那么我们交换一对配对,若依旧能够满足条件,画画图就知道答案不变。因此对于任意可行配对答案均相同。于是我们统计出所有黑点的-x+y,所有白点的x-y,累加起来即可。Code:#include #inc

2014-10-17 10:14:44 1811

原创 BZOJ1433 [ZJOI2009]假期的宿舍

题意:自行脑补思路:网络流,建模显然,若满流则可以代码:#include #include #include #include #include #include using namespace std; #define INF 0x3f3f3f3f queue q;struct Solver { int head[200], next[6010], end[

2014-10-17 10:07:07 1034

原创 BZOJ2337 [HNOI2011]XOR和路径

题意:有一个无向图,边带权,从点1开始,每次随机选择与这个点相邻的一条边走到另一个点,直到走到点n.权值为所有走过的边的异或和(若一条边经过多次则被异或多次),求权值的期望值。思路:将每一位拆开。那么相当于边上的权值只有0,1.由于到达n就立即停止,我们定义f[i]表示从i到达n的期望值。那么显然f[n]=0,对于i!=n,我们列出其转移方程:for all x near

2014-10-17 10:00:09 1360

原创 BZOJ3627 [JLOI2014]路径规划

题意:求期望红绿灯时间下,途径若干加油站,经过最多若干个红绿灯,起点与终点的最短路。思路:每个有红绿灯的节点通过时间怎么算呢?事实上t=red*red/2/(red+green),然后把这个时间附加到节点的出边上。随后我们建立分层图,第i层表示经过了i个红绿灯时,从源点到该点的最短路径长度。如果没有油量限制,那么我们直接跑最短路就行了。注意到加油站很少,于是我们枚举以每个加

2014-10-17 09:48:03 1544

原创 BZOJ1452 [JSOI2009]Count Solution

题意:自行脑补做法:直接开权值那么多的二维树状数组暴力。Code:#include #include #include #include using namespace std; inline int getc() { static const int L = 1 << 15; static char buf[L], *S = buf, *T = buf;

2014-10-17 09:43:48 908

原创 BZOJ3720 Gty的妹子树Solution

题目大意:维护一棵初始有n个节点的有根树(根节点为1),树上节点编号为1-n,每个点有一个权值wi。支持以下操作:0 u x          询问以u为根的子树中,严格大于x的值的个数。(u^=lastans,x^=lastans)1 u x          把u节点的权值改成x。(u^=lastans,x^=lastans)2 u x          添

2014-10-17 09:12:58 1394 4

转载 构造串卡掉自然溢出BY PoPoQQQ

S0=1S1=10S2=1001S3=10010110Si+1=Si+Si' Hash(Si)-Hash(Si')=( Hash(Si-1) - Hash(Si-1') )*k^2^(i-1) + ( Hash(Si-1') - Hash(Si-1) )=( Hash(Si-1) - Hash(Si-1') )*(k^2^(i-1)-1)其中(k^2^(

2014-10-09 10:12:04 1699 1

原创 浅谈2-sat的问题的构造与求解

2-sat问题是一种常见的问题。给定若干个01变量,变量之间满足一些二元约束,求是否有解存在。若存在,给出可行解或按照字典序给出最优解。下面给出与其对应的图论模型:给每个变量i设立2个点,我的习惯是记为T(i),F(i),分别表示其值取1,0.下面考虑的便是如何进行限制了。一般的限制形式均如下所示:变量i取x时,变量j只能取y,那么表示i取x的点向表示j取y的点连一条有向边

2014-10-03 03:31:13 1879

原创 浅谈快速傅里叶变换

为什么现在不想说很多话?不妨先留下一个提纲日后填坑吧。

2014-10-02 23:55:15 942

原创 动态树之详解

动态树问题是一种动态维护森林连通性,以及路径上的信息的问题。目前我们可以利用link-cut-tree进行求解。最近发现自己以前写的那个版本实在是太渣了,于是膜拜神犇代码写了新的版本。我们首先简单解释一下Link-Cut-Tree的原理。将树划分为若干重链,重链之间用轻链相连接。每一条重链用一颗Splay树维护。Splay的序关系由点的深度确定。划分的依据?关键在于Ac

2014-10-02 21:53:05 1299 1

原创 BZOJ3262 陌上花开 Solution

题意:有n朵花,每朵花有3个属性,若一朵花比另一朵花美丽,当且仅当这朵花的三个属性均不小于另一朵花。一朵花的美丽度等于这朵花比其他多少朵花要美丽。求美丽度分别为0~n-1的花各有多少朵。Sol:事实上就是三维偏序。一句话:一维排序,二维CDQ分治,三维树状数组。How do they work?首先根据x坐标排序,接着对y,z坐标CDQ分治。定义Solve(l,r)为处

2014-10-02 19:25:32 1258

原创 BZOJ2460 [BeiJing2011]元素 Solution

简单留一下纪念:同BZOJ3105.Code:#include #include #include #include using namespace std; #define N 1010int n;long long a[N];int w[N], ins[64], sav[N], top; int main() { scanf("%d", &n);

2014-10-02 19:21:40 832

原创 BZOJ1041 圆上的整点 Solution

题意:给定r,求x^2+y^2=r^2的图象上存在多少个整点。Sol:问题显然可以转化为x^2+y^2=r^2有多少个正整数解。我们考虑如何快速的解出这个方程。引入本源勾股数组(x,y,z)(x,y,z为正整数),满足x^2+y^2=z^2且gcd(x,y,z)=1.我们能够证明一些性质,z为奇数,x,y一奇一偶,不妨设x为奇数,y为偶数,则有z-x为完全平方数的二倍,z-y为

2014-10-02 18:52:54 823

原创 BZOJ3196 二逼平衡树 Solution

题意:写一个数据结构支持如下操作:(1)区间第k大(2)区间内求某个数的排名(3)修改某个位置的数(4)区间内求某个数的前趋、后继。Sol:以下提供两种做法。Sol1:线段树套平衡树。非常裸的做法,除询问区间第k大复杂度为O(log^3n),其余操作时间复杂度为O(log^2n).Code1:#include#include#include#defin

2014-10-02 14:20:49 1135

原创 Codeforces Round #269 (Div. 2) Solution

Codeforces round 269 div2 刷题历程。。。 tot rank 220.

2014-09-27 01:41:08 1236 3

空空如也

空空如也

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

TA关注的人

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