自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

HJQ的博客

一个juruo的博客

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

原创 [BZOJ5110]Yazid 的新生舞会

题目大意有一个长度为n的序列A,下标从1至n。显然地,这个序列共有n(n+1)2\frac{n(n+1)}{2}个子区间。问有多少个子区间[l,r],对于这个子区间[l,r],如果该子区间内的众数在该子区间的出现次数严格大于r−l+12\frac{r-l+1}{2}(即该子区间长度的一半)。Solution对于序列中的每一种数分别考虑。对于每一种数x,如果有数组a,a[i]=1表示下标为i的位置上是

2018-03-06 12:23:20 387

原创 BZOJ2326 数学作业

题目传送门Solution设N的答案为f(n)。那么很容易得到一个递推式:F(n)=F(n−1)∗10k+nF(n)=F(n-1)*10^k+n,其中k是n的位数。 所以当k固定时,这个式子的转移方式也是固定的。所以可以枚举每个k。而对于每一个k,我们很容易得到一个矩阵: [10k,1,1][10^k,1,1] [0,,,,1,1][0, \phantom,\phantom,\phantom,

2018-01-09 14:28:55 187

原创 BZOJ2154 Crash的数字表格

题目大意给定n,m,求:∑i=1n∑j=1mlcm(i,j)\sum_{i=1}^{n}\sum_{j=1}^{m}lcm(i,j)Solution令p=gcd(i,j),且min{n,m}=n。 ∑i=1n∑j=1mlcm(i,j)\sum_{i=1}^{n}\sum_{j=1}^{m}lcm(i,j) =∑p=1n∑i=1⌊np⌋∑j=1⌊mp⌋ijp⋅ε(gcd(i,j)

2018-01-04 10:18:30 218

原创 BZOJ4736 温暖会指引我们前行

题目大意给定n个点,要维护三种操作: find id u v t l:在u,v点间连一条编号id,温度t,长度l的边(保证温度互不相同)。 move u v:询问在u到v的路径中,温度从小到大排序后字典序最大的路径的长度。若不存在路径,输出-1 change id l:将编号为id的边长度改为lsample input8 19find 0 0 2 7 2find 1 2 4 4 4fin

2017-12-26 16:10:50 256

原创 BZOJ3626 LCA

题目大意给出一个n个节点的有根树(编号为0到n-1,根节点为0)。一个点的深度定义为这个节点到根的距离+1。 有q次询问,每次询问给出l r z,求∑ri=ldeep[LCA(i,z)]\sum_{i=l}^{r}deep[LCA(i,z)]。Solution我们可以发现,这个答案是可减得。所以对每次询问,只要求出(∑ri=1)(\sum_{i=1}^{r})-(∑l−1i=1)(\sum_{i=

2017-12-22 15:17:05 135

原创 BZOJ2286 消耗战

题目大意有一棵n个点的树,每条边有边权。有m次询问,每次给定k个关键点,问能切断根(1号点)到所有关键点的最小代价是多少? n<=250000,m<=500000,∑k\sum{k}<=500000Solution可以发现,每次询问时只有关键点和关键点之间的LCA是有用的,知道了这些点,就能计算出答案。而且可以证明,这些点的总点数小于2k,总的复杂度可以变成O(∑k\sum{k})。 用一个栈,

2017-12-20 20:58:14 171

原创 BZOJ3196 二逼平衡树(线段树套线段树)

题目大意一种数据结构,维护一个有序数列,其中需要提供以下操作: 1.查询k在区间内的排名 2.查询区间内排名为k的值 3.修改某一位值上的数值 4.查询k在区间内的前驱(前驱定义为小于x,且最大的数) 5.查询k在区间内的后继(后继定义为大于x,且最小的数)Solution查询k在的排名,k的前驱,后继,能马上想到用平衡树维护。而因为是在区间中询问的,所以要用到树套树。外层维护一棵线段树,

2017-12-19 20:09:24 485

原创 POJ3565 Ants

题目大意有n只蚂蚁,要爬到n棵树上,使每只蚂蚁爬到没棵树上,且两只蚂蚁的路径不能交叉。问是否存在一种方案,若有,输出任意一种方案。Solution我们可以发现,若两只蚂蚁的路径交叉,那么交换一下这两只蚂蚁要爬上去的树,肯定能使总路程减少,这样的路径一定不是最小匹配。所以最小匹配一定是合法的路径。所以以任意蚂蚁到任意树间的距离为边权,求出带权二分图最小匹配就一定是其中一种方案。剩下的就是KM的模板。代

2017-12-18 21:11:58 201

原创 POJ3667 Hotel

题目大意有n个本来为空的房间,有两种操作。 1:找到最左边连续长为l的一段,并占有它们。 2:将l到r区间置为空。Solution我们可以用线段树维护一段区间内最多连续的空房间数。但只记下这个答案,是无法把两个区间合并的。而只要多记下这个区间从左开始连续空房间数,从右开始连续空房间数,就能把两个区间合并了。询问时,我们可以在左右子树中分别寻找答案。但还要多考虑一种答案在两棵子树中的情况,这个答案

2017-12-18 17:57:01 89

原创 BZOJ2819 Nim

题目大意给定一棵树,有两种操作。 1 u v 询问若在v到u间的路径上的石子堆中玩Nim游戏,先手是否有必胜策略。 2 v k 将v节点上的石子个数改为k 请输出所有询问的答案(Yes/No)Sample Input5 1 3 5 2 5 1 5 3 5 2 5 1 4 6 Q 1 2 Q 3 5 C 3 7 Q 1 2 Q 2 4 Q 5 3Sample Output

2017-12-13 18:43:00 202

原创 互质对(51nod1439)

题目大意有n个数字,a[1],a[2],…,a[n]。有一个集合,刚开始集合为空。然后有一种操作每次向集合中加入一个数字或者删除一个数字。每次操作给出一个下标x(1 ≤ x ≤ n),如果a[x]已经在集合中,那么就删除a[x],否则就加入a[x]。 问每次操作之后集合中互质的数字有多少对。 注意,集合中可以有重复的数字,两个数字不同当且仅当他们的下标不同。Input单组测试数据。 第一行包含

2017-10-17 18:43:22 630

原创 51nod1617(codeforces117D)奇偶数组

题目大意a是一个包含n个元素的数组。对a中的元素进行1-n编号。 定义“偶数组” even, evenieven_{i}=a2ia_{2i}(1≤2i≤n) ,即“偶数组” even是由数组a中编号为偶数的元素组成的。 定义“奇数组” odd, oddiodd_{i}=a2i−1a_{2i−1}(1≤2i−1≤n) ,即“奇数组”odd是由数组a中编号为奇数的元素组成的。然后,我们定义一个转换方

2017-09-28 16:53:46 224

原创 51nod138夹克老爷的逢三抽一

题目大意又到了诺德县的百姓孝敬夹克大老爷的日子,带着数量不等的铜板的村民准时聚集到了村口。 夹克老爷是一位很”善良”的老爷,为了体现他的仁慈,有一套特别的收钱的技巧。 1、让所有的村民排成一队,然后首尾相接排成一个圈。 2、选择一位村民收下他的铜钱,然后放过他左右两边的村民。 3、让上述三位村民离开队伍,并让左右两边的其他村民合拢起来继续围成一个圈。 4、重复执行2、3直到村民全部离开。

2017-09-27 19:16:38 338 2

原创 Hello World!

#include<cstdio>int main(){ printf("Hello World\n"); return 0;}//HJQ是个非常非常弱的OIer,弱到了一种境界。

2017-09-25 17:17:50 221 3

空空如也

空空如也

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

TA关注的人

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