alpc_qleonardo

ALPC_NeverGiveup……达芬奇不相信眼泪!

CodeForces 1111E Tree(LCA + DP +树状数组)

    大致题意:给你一棵包含n个节点的无根树,然后q个询问,每个询问给出一系列点和m、r。表示问你,把根设置为r的情况下,把给定点分为至多m部分,要求每一部分至少一个给定点,且一个部分中不能出现两个给定点一个点是另一个点的祖先,问划分的方案数。 还是一样,我们先简化问题,如果这...

2019-02-09 16:40:53

阅读数 53

评论数 2

CodeForces 1096F Inversion Expection(树状数组 + DP + 组合计数)

    好久没有做一道这么对胃口的题了…… 大致题意:给出一个1..n的全排列,但是其中有些数字被替换成了-1。我们设给出数列中-1的个数为x,那么原来的全排列就有x!种,而且告诉你取这x!种每一种的概率相等,现在问你原排列的逆序对的期望是多少。 很显然,这个数列分为两个部分,一个...

2018-12-29 16:40:51

阅读数 58

评论数 0

计蒜客 2018ICPC徐州站/gym 102012G Rikka with Intersection(组合计数 + 树链剖分 + 树状数组)

    大致题意:给你一个包含n个点的树和m条路径。现在让你从这m条路径中选择k条路,使得这k条路径一定有至少一个公共交点,问选出这k条路径的方案数是多少。 最朴素的想法就是,每次查看一个点的贡献,也就是枚举这个公共点,然后看有多少个路径经过这个点,组合数求一下即可。但是这个错误也是很明...

2018-12-02 22:47:15

阅读数 169

评论数 0

CodeForces 1045G AI robots(CDQ分治 + 树状数组 + 单调队列)

    大致题意:有很多个机器人,他们要相互交流有一些限制条件。首先是,两个人要相互能够能够看到;其次,两个人的智商的差不超过K。现在给出每个机器人的视力范围和他们的智商,现在问你总共有多少对机器人能够相互交流。 首先来看下总共有多少个限制条件。由于是要求双方都能够看到,所以显然是要按照...

2018-10-21 15:16:45

阅读数 55

评论数 0

CodeForces 1051E Vasya and Big Integers(dp + 树状数组 + 字符串哈希/后缀数组)

    大致题意:给你一个很大的数字,然后你可以把这个数字拆分成为任意多个部分,要求每一个部分的数字大小要在一个区间内,问有多少种拆分方式。 由于是给定数字的拆分,所以区间对于拆分的限制,仅仅是限于长度。也即如果拆分的部分的长度介于上界和下界的长度之间,那么直接查分即可。如果长度等于...

2018-09-24 12:33:42

阅读数 205

评论数 0

计蒜客 ICPC沈阳网络赛 Ka Chang(树上分块 + 树状数组)

大致题意:给你一棵有根树,有两种操作,一是把某一层的所有的节点增加一个val,二是输出一个节点所在的子树的和。普通的dfs序可以支持子树查询,但是不能支持按照深度的修改。对于一个深度,修改一次的复杂度是klogn,k为这个神的的节点个数,可以看出,如果是一个类似菊花图的东西,时间复杂度会爆炸。然后...

2018-09-09 11:08:16

阅读数 47

评论数 0

HDU 6274 Master of sequence(二分答案 + 树状数组)

大致题意:给你两个数列{ai}和{bi}。每次有三种操作,对于第一种是改变某个ai,第二种是改变某个bi,第三种是让你求满足的最小的t。首先,这种求满足条件的最小值,肯定是二分答案无疑了。然后我们看这个S(t)的表达式子,一个很显然的想法是把分子拆分成为两个部分,一个是bi/ai和t/ai,另一个...

2018-09-01 10:09:47

阅读数 187

评论数 0

HDU 6393 2018HDU多校赛 第七场 Traffic Network in Numazu(树链剖分 + 树状数组)

大致题意:给你一个含有一个环的树,即n个点n条边的图,然后动态修改每一条边的边权,同时动态询问任意两点之间的最短距离。非常裸的一道图论+数据结构题。首先,我们考虑如果没有环的情况下,那就是一个显然的树链剖分+线段树/树状数组的题目,但是现在有一个环就变得不一样了。但是这种题目显然是要把树变成环的,...

2018-08-15 08:25:43

阅读数 90

评论数 0

HDU 6315 2018HDU多校赛第二场 Naive Operations(线段树+树状数组)

大致题意:初始的时候给你序列bi,然后ai初始为0。现在又两种操作add l r 和query l r。add是把a中区间[l,r]加一,query是让你求∑⌊ai/bi⌋,即区间内ai数值除以bi向下取整。个人最擅长做的题系列~现场50min时A题O(∩_∩)O……首先说明一下,这里用普通的线段...

2018-07-25 19:23:17

阅读数 69

评论数 0

CodeForce 958C3 Encryption (hard)(dp+树状数组)

大致题意,给你n个数字,然后让你把这n个数字分成连续的k组,然后每一组的权值是每组所有数字的和模p。现在问所有组的权值和的极值。 首先,我们说一下这道题目的前两个版本的解法。C1是求最大值,k固定等于2,这个随便怎么暴力都行。 C2也是求最大值,然后n、k、p的范围分别...

2018-04-20 23:37:08

阅读数 138

评论数 0

CodeForces 848C Goodbye Souvenir(CDQ分治+平衡树/set+树状数组)

再度加深对CDQ分治的理解。大致题意:给你一个数字序列,然后有两种操作。一是修改,把某个位置的数字改成另外一个数字;二是求一个区间[l,r]中所有同类数字的最大跨度和,即如样例所示。         首先,对于这个同类数字中的最大跨度和,对于每一个数字可以按照套路,分成所有前后相邻两个同类数字的距...

2017-12-14 20:46:56

阅读数 170

评论数 0

BZOJ 3110 [Zjoi2013]K大数查询(整体二分+树状数组)

其实呢,这题和之前写过的那个动态区间第K大很类似,只不过那个是修改,而这个是插入,但是同样都可以用线段树套Treap来实现。但是今天要说的是另外一种更加巧妙的分治方法,使得编程复杂度大幅下降——整体二分。         首先,我们知道,如果仅仅只是询问区间第K大,我们用的是二分答案。具体做法是二...

2017-12-03 11:01:23

阅读数 213

评论数 0

NEU 1704 三维偏序(CDQ分治+树状数组)

经典的三维偏序问题,cdq分治同样也是经典的做法。         不考虑这种方法的话,我们可以先对所有的数字按照x坐标排序,然后按顺序把另外两个坐标添加进二维树状数组里面,每次查询它前面的数字个数即可。然而这里总共有100000个数字,开二维树状数组即使在离散化的情况下,也会爆内存,于是貌似只能...

2017-12-02 19:46:58

阅读数 252

评论数 0

Code Forces 589G Hiring(树状数组)

果然三个小时对于我们来说还是不够把中档以下的题目做完……         此题其实也是一道不太难想到的一个中档题。大致题意:给你n个人,然后每一个人有每天工作的准备时间和他们的这几天要工作的总时长。然后他们只有m天的时间完成这个总时长,而且每天有限制的工作时间ti。对于这个工作准备时间,要计算在每...

2017-11-17 23:51:38

阅读数 84

评论数 0

HDU 6230 Palindrome CCPC2017 Harbin(Manacher+树状数组+离线处理)

在哈尔滨的第一场比赛真的是像发疯了一样,在水题上纠结了近四个小时……当时真菜……         现在回过头来看,这道题目还是非常的巧妙的。首先,我们要清楚的明白,这个回文的性质,例如:abcbabc,有两个对称中心'c'和'a',然后第二个对称中心的长度要恰好为两个对称中心的距离。转换成符号表示...

2017-11-11 22:57:45

阅读数 330

评论数 0

HDU 5542 The Battle of Chibi(dp+树状数组)

按照惯例,比赛期间应该停止刷题……         但是经过上次的失败经历我发现,手感这种东西还是很重要的,不然关键时候卡题……         于是今晚重新刷一套CCPC,结果发现自己状态神勇,几乎是自己一个人在3小时10分钟内A了6题……虽说水题有好几道,但怎么说至少没有卡手,后面的这两道稍微...

2017-10-26 23:15:45

阅读数 84

评论数 0

2017多校训练赛第四场 HDU 6078 Wavel Sequence(dp+优化)

第四场多校,到现在才补……         又是类似最长公共子串类型的dp。大致题意是给你两个序列a和b,然后问你能够选出多少个f和g映射,使得a[fi]==b[fi],而且a[f1]、a[f2]、a[f3]……a[fn]是波浪序列。         很容易想到的一个递推是dp[i][j][t]=...

2017-09-19 19:44:18

阅读数 281

评论数 0

UVa 7037 ACM/ICPC 2014 Xian(网络流+最大密度子图)

大致题意:给你一个1~n的排列,然后让你在这个排列中挑选任意个数字,使得这些数字组成的子串的逆序对数量除以总长最大。         首先,我们先来回顾一下逆序对怎么计算。正常来说,O(N^2),但是大大可以用一些数据结构来优化。无非就是,加入一个数字的时候统计在此之前比该数字大的数字有多少个,然...

2017-09-13 21:59:00

阅读数 189

评论数 0

HDU 5517 Triple ACM/ICPC 2015 Shenyang(二维树状数组)

题目读清楚,脑子不混乱,思路自然就会更清晰……         这题就是给你两个集合A和B。A中每个元素包含两个数字a和b,然后B中每个元素包含三个数字c、d和e。我们规定,如果A中的i元素的b与B中的j元素的e相同,那么把这两个元素合并成<a,c,d>加入C集合中。然后,问C集合中,...

2017-09-03 20:40:09

阅读数 192

评论数 0

HDU 5869 ACM-ICPC Regional Dalian Online(离线统计+树状数组)

本来想做数论的题目的,没想到是一道离线统计的题目。果然统计加离线大法的力量就是强……         大致题意就是,给出一个数列,然后有很多询问,每次问一个区间内它的所有子区间的gcd的值有多少种。一开始的话认为可能会有一些区间的性质,即对于区间[l,r]可以用1到r的种类数减去1到l-1的种类数...

2017-08-17 13:49:52

阅读数 122

评论数 0

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