自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

juruo? juruo!

青春从不辜负拼尽全力的你。

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

原创 最新动态

2018.11.17 UPD该结束了吗。。。。。

2017-12-03 12:58:37 974 2

原创 Hello world!

Hi,世界。简介:这里是来自zj的一名蒟蒻oier,喜欢乱写文章的妹子。比赛经历:初中三年noip,历尽艰辛,两年pj全没一等,初三参加了tg让我水到了一等。About me:我的id:atcoder, bzoj, hackerrank, vj上的是姓名全拼;别的大多是bestFy。qq:2411280037(加我的话必须回答对第三个问题qaq—————见上)共勉:加油!我们一起加油!!成功的那一...

2017-12-01 19:15:35 1273

原创 bzoj1534: [POI2005]Sum- Fibonacci sums

题面在这里题意:给两个数AB表示为∑i=1nai×f[i]\sum\limits_{i=1}^{n} {a_i\times{f[i]}}和∑i=1mbi×f[i]\sum\limits_{i=1}^{m} {b_i\times{f[i]}},其中a,b是一个01数组,且没有两个相邻的1,最高位一定是1。 现在问你A+B怎么也用这种表示方法表示出来。良心补充一下输出格式,输完n以后不用换行,不然你会

2017-12-31 23:57:52 369

原创 bzoj3110: [Zjoi2013]K大数查询

题面在这里题意:有N个位置,M个操作。操作有两种,每次操作如果是1 a b c的形式表示在第a个位置到第b个位置,每个位置加入一个数c,如果是2 a b c形式,表示询问从第a个位置到第b个位置,第C大的数是多少。做法:权值线段树套区间线段树。呐应该很好理解。 我的第二棵树套树= =(第一棵是二逼平衡树)代码:/*******************************************

2017-12-31 23:44:46 256

原创 codeforces911F - Tree Destruction

题面在这里题意:给一棵树,执行n次操作,每次操作流程如下: 1. 选两个叶子节点 2. 将答案加上这两个节点的距离 3. 删去任意一个节点要求最后答案最大。 问最大的答案以及构造出操作步骤。做法:一个简单的想法就是找一个深度最深的叶子,去更新别的叶子。 我们来看具体的情况。假设是下面这张图。红色的点就是深度最深的点,绿色是深度次深的点,且他们是处在根的不同儿子所在的子树。 于是对于最右边

2017-12-30 02:30:14 444

原创 bzoj3674: 可持久化并查集加强版

题面在这里题意:3种操作 1 a b 合并a,b所在集合 2 k 回到第k次操作之后的状态(查询算作操作) 3 a b 询问a,b是否属于同一集合,是则输出1否则输出0做法:可持久化并查集,相当于每个时间建一棵线段树维护每个数的fa[]。 这题我用了按秩合并。这么理解,把并查集看成很多棵树,先不考虑路径压缩。 如果两个节点要合并,相当于把他们所在的两棵树合并。假定两个树的根节点为fx,fy

2017-12-29 14:31:35 251

原创 bzoj3673: 可持久化并查集 by zky

题面在这里题意:3种操作 1 a b 合并a,b所在集合 2 k 回到第k次操作之后的状态(查询算作操作) 3 a b 询问a,b是否属于同一集合,是则输出1否则输出0做法:可持久化并查集,相当于每个时间建一棵线段树维护每个数的fa[]。代码:/************************************************************* Problem:

2017-12-29 12:55:37 299

原创 bzoj2741: 【FOTILE模拟赛】L

题面在这里题意:给一个数列,然后m个询问,每次询问一个区间[l,r]内异或值最大的数对,输出它们的异或值。做法:分块+可持久化trie。我们可以在log复杂度内求出,一个区间内任意一个数和一个定值的最大异或值。 可以用可持久化trie维护。 但是现在两个数都是不定的。考虑分块,f[i][j]表示第i个块左端点到j这段区间的数对的最大异或值。 则递推式为f[i][j] = max(f[i][j-

2017-12-28 17:34:53 280

原创 CC FIBTREE Fibonacci Numbers on Tree

题面在这里题意:给一棵树,有4种操作: 1.询问以x为根时y子树内的点权和。 2.询问x~y链上的点权和。 3.将x~y这条链展开,第i个点加上fibifib_i,其中fibifib_i表示斐波那契第i项,fib1=fib2=1fib_1 = fib_2 = 1。 4.恢复到第x个操作时的状态。 本题强制在线。做法:首先fibi=15√×((1+5√2)i−(1−

2017-12-28 11:28:34 300

原创 bzoj4010: [HNOI2015]菜肴制作

题面在这里题意:求一个n的排列,有一些限制做法:注意这个不同于求字典序最小。 一个例子是n=4,限制有<3,1>,<2,4> 答案应该是3124 如果是字典序最小是2431我们发现编号小的尽量在前,相当于将序列反过来以后,字典序要最大。 这个很好理解,因为假如你反着来字典序没有最大,肯定会有一个较小的数在后面。 而事实上是可以将它提前的。所以原问题转化成了反向建图,求字典序最大的拓扑序。用

2017-12-27 17:58:05 271

原创 bzoj3286: Fibonacci矩阵

题面在这里题意:题面写得很清楚。做法:首先想到矩阵快速幂。 发现n和m很大,log2承受不了。我们可以转化成10进制来做,原理和二进制一样, 先处理好乘0~9次的矩阵,每次p除以10,ans变成ans的十次方乘上原矩阵的v[i]次,v[i]是第i位的数字。 然后这题还要使用一些高级的卡常技巧,比如手打矩阵乘法之类。顺便,这题1A感觉胖胖QWQ代码:/**********************

2017-12-27 15:10:22 313 2

原创 Codeforces Round #454 (Div. 2)

这是一场打得很一般的比赛qwq 但是还是记一下吧。。 顺便膜一下cqz大佬打到rk4….比赛链接A. Masha and Bears题意:给出a,b,c,x,要求A,B,C,满足: a<=A<=2a b<=B<=2b c<=C<=2c x<=C<=2x 2x做法:直接暴力枚举吧。代码:#include<cstdio>#include<cstring>#include<iostrea

2017-12-27 13:12:46 237

原创 codeforces487C - Prefix Product Sequence

题面在这里题意:要求构造一个n的排列,使得它的n个前缀积%n刚好是0~n-1的一个排列。做法:若n=1或n=4直接输出构造方案,n=4时是1 3 2 4。 其他时候若n是合数则无解。 否则,我们考虑怎么构造。首先第一个肯定是1,最后一个肯定是n。 然后假如i=2,发现i/(i-1) * (i+1)/i * (i+2)/(i+1) … (i+k)/(i+k-1) = (i+k)/(i-1) =

2017-12-26 16:11:58 224

原创 bzoj3261: 最大异或和

题面在这里题意:一个非负整数序列,两个操作: 1.添加一个数到序列最后 2.询问l,r,x,要找到在[l,r]之间一个p使得x^a[p]^a[p+1]^..^a[n]最大。做法:记s[i]为前缀异或值,则x^a[p]^..^a[n]=x^s[n]^s[p-1]; 观察到x^s[n]为定值,所以只需要求[l,r]内和x^s[n]最大的s[p-1]。 用可持久化trie维护。代码:/******

2017-12-26 15:36:00 252

原创 bzoj2588: Spoj 10628. Count on a tree

题面在这里题意:给一棵树,多组询问,每次询问u,v路径上点权的第k小。做法:本题卡时间,只能带一个log。 考虑每个节点维护一个到根的权值线段树,查询x,y的路径上的和就是sum[x]+sum[y]-sum[lca(x,y)]-sum[fa[lca(x,y)]]。 于是每次只要把4个数传进参数里。qwq不用二分。另外这题可以树链+二分+树套树,log^4,不过会T.代码:/***********

2017-12-26 08:39:46 215

原创 AtCoder Regular Contest 088

最近刷题真的好少啊QAQ,博客也更得少了。昨天的比赛赶紧记一下不然又要忘记的…C - Multiple Gift题目大意:要求构造一个序列,满足序列中的数都在[l,r][l, r]范围内,并且后一个数是前一个的倍数且严格递增。 问最长的序列长度。做法:水题。贪心即可。后一个数都是前一个数的两倍。代码:#include<cstdio>#include<cstring>#include<algor

2017-12-24 23:28:26 291

原创 bzoj3772: 精神污染

题面在这里题意:给出一个树,共n个节点。 有m条互不相同的树上路径。 现在让你随机选择2条路径,问两条路径存在包含关系的概率(输出最简分数)。 n,m<=100000做法:假如我们把所有路径存下来,对于x,y的一条路,在x处打一个y标记,在y处打一个x标记,那么我们查询的时候,只要查询x,y两侧分别有多少标记就可以了,因为x,y两侧的点形成的路径肯定包含x-y。再说得明白一点,就是假如你对每个

2017-12-23 12:10:11 540

原创 bzoj1491: [NOI2007]社交网络

题面在这里 做法: floyd+DP。 设w[i][j]w[i][j]表示i−ji-j的最短路,f[i][j]f[i][j]表示i−ji-j最短路方案数。 转移就是f[i][j]+=f[i][k]∗f[k][j]f[i][j]+=f[i][k]*f[k][j] 然后再枚举每个点计算一下好了= =/***********************************************

2017-12-16 00:13:43 246

原创 偶有所录

2017.12.152018.1.19

2017-12-15 23:24:11 300

原创 bzoj1202: [HNOI2005]狡猾的商人

题面在这里 做法: 差分约束。 每个操作(?操作询问傻傻分不清楚)x,y,zx, y, z可以看做sum[y]−sum[x−1]=zsum[y]-sum[x-1]=z。 并查集维护sum[i]sum[i]之间的联通性。假如在同一连通块里就判断是否合法。 也可以建边之后用spfaspfa判负环。/************************************************

2017-12-15 22:22:23 263

原创 bzoj1059: [ZJOI2007]矩阵游戏

题面在这里做法: 如果a[i][j]=1a[i][j]=1就连一条i−ji-j的边,然后跑二分图最大匹配,如果匹配数为nn就可以。 至于为什么的话,可以知道同行同列的点不管怎么交换都还是同行同列,所以只需找到nn个不同行列的点即可。/************************************************************* Problem: bzoj 10

2017-12-15 19:50:43 460

原创 bzoj3039: 玉蟾宫

题面在这里 呐这已经是水题again and again and again了呜哇...做法: 单调栈。和51nod1158全是1的最大子矩阵一样的。。。 嘛单调栈的原理我就不讲了叭= =毕竟这也不是算法详解QwQ/************************************************************* Problem: bzoj 3039 玉蟾宫

2017-12-15 18:54:43 245

原创 bzoj1270: [BeijingWc2008]雷涛的小猫

题面在这里 水题again and again感觉自己已经颓得不行做法: DP。保存一个maxmax避免O(n)O(n)转移。别的没啥好说的。/************************************************************* Problem: bzoj 1270 [BeijingWc2008]雷涛的小猫 User: fengyuan

2017-12-15 17:22:30 301

原创 bzoj1303: [CQOI2009]中位数图

题面在这里 水题again做法: 我这做法好像有一点点辣鸡(?) emmmmm 我们首先将数组中小于bb的数都打标记11,然后记a[i]a[i]为前缀和。 设区间为(l,r](l, r]满足(r−l)(r-l)是奇数。 我们要求的区间即应满足2×(a[r]−a[l])+1=r−l2\times{(a[r]-a[l])}+1=r-l,且(l,r](l,r]经过bb所在位置。 转化一下,得

2017-12-15 15:28:52 225

原创 bzoj1601: [Usaco2008 Oct]灌水

题面在这里 偶尔刷道水题有益身心健康做法: 把打井这个操作看成向n+1n+1这个点连一条边。问题转化为求11~n+1n+1号点的最小生成树。/************************************************************* Problem: bzoj 1601 [Usaco2008 Oct]灌水 User: fengyuan La

2017-12-15 14:18:19 264

原创 bzoj1046: [HAOI2007]上升序列

题面在这里做法: 先预处理出f[i]f[i]表示第i个数字开始的最长上升子序列长度。这个相当于倒着求一遍最长下降子序列。 然后贪心。对于每一个询问lenlen,我们从左到右扫描,若当前的f[i]>=lenf[i]>=len且ai>lasta_i>last,则输出这个数并更新为lastlast,然后len−−len --。直到len=0len=0为止。话说O(nlogn)O(nlogn)的lisl

2017-12-15 13:48:44 196

原创 bzoj1485: [HNOI2009]有趣的数列

题面在这里做法: 我们可以将一个奇数项的数看成入栈,偶数项的数看成出栈,则每一个合法的出栈入栈序对应一个合法解。 所以就是卡特兰数。fn=Cn2nn+1f_n=\frac{C_{2n}^n}{n+1}。 然后由于不保证模数pp是质数,所以需要暴力分解质因数。/************************************************************* Pr

2017-12-15 12:46:56 191

原创 bzoj1053: [HAOI2007]反素数ant

题面在这里 做法: 这题嘛看起来很恐怖啊= =n居然有20亿 然而其实我们只需枚举一下质因子的个数,而这个枚举量是很小的,因为前10个质数相乘就已经超过20亿了吧、、、 于是我取了前12个质数。 暴力dfs一下就行。/************************************************************* Problem: bzoj 1053 [H

2017-12-15 00:46:06 201

原创 bzoj1044: [HAOI2008]木棍分割

题面在这里 做法: 第一问直接二分答案。 第二问DP,我们定义f[i][j]f[i][j]表示前i根木棍分为j块的方案数。 首先要O(n)O(n)预处理出nxt[i]nxt[i]表示满足a[i]−a[k−1]<=resa[i]-a[k-1]<=res的最小的k。注意这里的a[]a[]是题目中数据的前缀和。然后转移方程是这样: f[i][1]=(a[i]<=res),f[i][j]=∑k=n

2017-12-14 22:07:25 209

原创 bzoj1041: [HAOI2008]圆上的整点

题面在这里 emmmm先来吐槽一下下~ %一发dsy上0ms的大佬们。。。 我就比较弱辣要200+ms,,QwQ 做法: 来做一些鬼畜的变形= = r2=x2+y2r^2=x^2+y^2 y2=r2−x2y^2=r^2-x^2 y2=(r+x)(r−x)y^2=(r+x)(r-x) y=(r+x)(r−x)−−−−−−−−−−−√y=\sqrt{(r+x)(r-x)} 设d=gc

2017-12-14 20:30:48 232

原创 bzoj1042: [HAOI2008]硬币购物

题面在这里 做法: 暴力dp显然要挂。 我们考虑先完全背包预处理出无限制的方案数。 然后考虑只有一个硬币有限制的情况。我们需要的答案应该等于f[tot]−f[tot−(bi+1)∗ai]f[tot] - f[tot-(b_i+1)*a_i],假定tot是总钱数,a是钱的面值,b是限制。至于为什么的话,一大佬题解里讲得挺清楚。链接 那么多种硬币都有限制就用一下容斥原理即可。/********

2017-12-14 15:39:08 230

原创 写在年末 the end of 2017

突然就很想感怀一下这一年。措手不及地来,又措手不及地走。毫无预知。一年刚开始的时候总还觉得遥遥无期,结束的时候却只能感叹时光易逝。或许这就是,只有失去了才会懂得珍惜的道理吧。2017。初二升初三。记得去年这个时候刚考完noip2016普及组,还在缅怀那不尽人意的成绩。同年级的选手纷纷一等了,准备明年冲提高组。而我拿着一个普及二等犹豫不决。这样的成绩,给人一种不踏实的感觉,你普及都考不到一等,凭什么去

2017-12-14 01:04:36 783 5

原创 poj3481 Double Queue(splay)

题面在这里 题目大意: 有一些人,每个人有一个名字和优先级。初始时队列为空。现在有33种操作:插入一个人;弹出优先级最大的那个人;弹出优先级最小的那个人。做法: 平衡树练习。直接上代码。/************************************************************* Problem: poj 3481 Double Queue Use

2017-12-09 18:00:13 318

原创 poj2985 The k-th Largest Group

题面在这里 题目大意: 有n个集合,每个集合有一个互不相同的元素。现在有两种操作:合并xx, yy所在的集合;询问第kk大的集合元素个数。做法: 并查集+平衡树。平衡树里维护每个集合的元素个数。/************************************************************* Problem: poj 2985 The k-th Largest

2017-12-09 15:53:33 220

原创 poj2892 Tunnel Warfare

题面在这里 题目大意: 有nn个物品排成一行。三种操作:DD xx 表示将第xx个物品摧毁;RR 表示将上一个物品回复;QQ xx 表示查询xx所在连通块的个数。做法: 平衡树中保存摧毁的物品编号。 查询时只需查询xx的前驱prepre后继nxtnxt,然后输出nxt−pre−1nxt-pre-1即可。/****************************************

2017-12-09 00:27:01 192

原创 poj2828 Buy Tickets

题面在这里 题目大意: 有一个队列,初始时为空。有nn个人,n<=200000n<=200000,有一个想去的位置和价值,每个人会依次将这个价值插入到它想去的位置上。这nn个人都插入队列后,输出这个队列。做法: 我们维护一个线段树,每个节点表示这个区间内剩下还有几个空位,初始时线段树每个节点值就等于区间长度。 考虑逆序操作。从nn~11枚举,插入时询问线段树左儿子剩下的空位够不够,如果够的就

2017-12-08 12:22:53 218

原创 bzoj3196: Tyvj 1730 二逼平衡树

题面在这里我去树套树真**丧心病狂… 神tm6KB代码,代码总长233行也是醉了。 做法: 额没什么好说的就是树套树的裸题。。自行体会。/************************************************************* Problem: bzoj 3196 Tyvj 1730 二逼平衡树 User: fengyuan Lan

2017-12-07 21:01:49 248

原创 bzoj3862: Little Devil I

题面在这里 题目大意: 给一棵树,每条边有黑白两种颜色。有3种操作:一条链上的边的颜色取反(黑->白,白->黑);与一条链相邻的边的颜色取反,相邻就是指只有一个点在链上的边;询问某条链上黑边的数量。开始时边的颜色都是白。做法: 1操作和3操作就是普通的树剖+线段树,很容易维护。 主要是2操作。 我们考虑维护两棵线段树,T[0]T[0]维护正常的边修改,T[1]T[1]是辅助用的,当

2017-12-07 11:17:10 298 2

原创 bzoj2325: [ZJOI2011]道馆之战

题面在这里 题目大意: 这题题目太长了就简单说一下题意。 给一棵树,每个节点分为两个区域A,B,在树上一个节点的某个区域,可以走到相邻节点的同一个区域,或同一个节点的另一个区域。每个区域内有两种状态,’.’表示冰,’#’表示障碍(障碍不能通过),给一些查询u, v,询问从u走到v能经过的最多冰的数量。同时还有一些修改操作,将某一点两个区域修改为s(s是长度为2的字符串)。做法: 这题花了我一

2017-12-06 17:57:03 313

原创 bzoj3531: [Sdoi2014]旅行

题面在这里 做法: 树剖+线段树动态开点。 容易想到对每个宗教建一棵线段树,不过空间限制不够,所以需要动态开点。别的都和正常树剖一样。代码如下:/************************************************************* Problem: bzoj 3531 [Sdoi2014]旅行 User: fengyuan Lang

2017-12-06 13:01:17 232

空空如也

空空如也

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

TA关注的人

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