数据结构
半世blue
这个作者很懒,什么都没留下…
展开
-
hdu多校第五场 G题
题意是给定一个随机数生成器,得到l, r, val表示将区间[l, r]内比val小的元素修改为val 解法有两种 第一种是线段树解法,我们就用线段树维护一个区间最小值,当val比区间的minn还小那么就不更新,否则向下暴力更新。因为数据是随机生成的,所以暴力更新并不会被卡。开始的想法是将所有操作按val从大到小排序,那么我们每个点就只会被更新一次,但是由于操作次数太多,排序时间大于计算答案的...原创 2018-08-07 17:06:43 · 140 阅读 · 0 评论 -
codeforces 940f Machine Learning【带修改莫队+离散化】
http://codeforces.com/problemset/problem/940/F You are given an array a. You have to answer the following queries:You are given two integers l and r. Let ci be the number of occurrences of i in al:...原创 2018-03-07 18:37:51 · 394 阅读 · 0 评论 -
BZOJ3289 Mato的文件管理-莫队算法
Mato同学从各路神犇以各种方式(你们懂的)收集了许多资料,这些资料一共有n份,每份有一个大小和一个编号。为了防止他人偷拷,这些资料都是加密过的,只能用Mato自己写的程序才能访问。Mato每天随机选一个区间[l,r],他今天就看编号在此区间内的这些资料。Mato有一个习惯,他总是从文件大小从小到大看资料。他先把要看的文件按编号顺序依次拷贝出来,再用他写的排序程序给文件大小排序。排序程序可以在1单原创 2017-11-01 20:19:45 · 248 阅读 · 0 评论 -
HYSBZ - 2038 小Z的袜子(hose)
作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿。终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命…… 具体来说,小Z把这N只袜子从1到N编号,然后从编号L到R(L 尽管小Z并不在意两只袜子是不是完整的一双,甚至不在意两只袜子是否一左一右,他却很在意袜子的颜色,毕竟穿两只不同色的袜子会很尴尬。 你的任务便是告诉小Z,他有多大的概率抽到两只颜色相原创 2017-10-28 17:50:01 · 216 阅读 · 0 评论 -
HYSBZ - 1036 树的统计Count (树链剖分)
树链剖分就是将一个树的路径转化成重链和轻链,对其节点或者边就行编号,从而可以转化成其他的数据结构问题来解决问题。树链剖分有些类似莫队,也就是相当于把树的路径进行了分块。数组的含义:fa[]每个节点的父节点 num[]每个节点子节点的个数(包含自己) son[v]与v在同一重链的重儿子 top[v]节点v所在链的顶端节点(v可以是一个单独的点,相当于自己组成一条重链) pos[v]节点v编号后原创 2017-12-12 14:04:11 · 243 阅读 · 0 评论 -
51nod 1089 最长回文子串 V2(Manacher算法)
传送门:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1089 回文串是指aba、abba、cccbccc、aaaa这种左右对称的字符串。 输入一个字符串Str,输出Str里最长回文子串的长度。Input输入Str(Str的长度 <= 100000)Output输出最长回文子串的长度L...原创 2018-05-27 17:22:16 · 117 阅读 · 0 评论 -
并查集
PalindromeA string is palindrome if it can be read the same way in either direction, for example “maram” is palindrome, while “ammar” is not. You are given a string of n characters, where each charac原创 2017-07-20 20:28:57 · 272 阅读 · 0 评论 -
570D Tree Requests (dsu_on_tree)
传送门:https://codeforces.com/contest/570/problem/D 题目大意:给一棵树,每个节点有一个字母,问节点v的深度为h的儿子节点的所有字母能否组成一个回文串(深度是对于整棵树) 很裸的一个树上合并,也可以使用二分来做//919ms#include<bits/stdc++.h>using namespace std;const int ...原创 2018-09-05 19:24:21 · 162 阅读 · 0 评论 -
bzoj 2141 排队 【分块】
http://www.lydsy.com/JudgeOnline/problem.php?id=2141 排排坐,吃果果,生果甜嗦嗦,大家笑呵呵。你一个,我一个,大的分给你,小的留给我,吃完果果唱支歌,大家 乐和和。红星幼儿园的小朋友们排起了长长地队伍,准备吃果果。不过因为小朋友们的身高有所区别,排成的队伍 高低错乱,极不美观。设第i个小朋友的身高为hi,我们定义一个序列的杂乱程度为:满足i...原创 2018-03-10 16:16:56 · 243 阅读 · 0 评论 -
01字典树
奇迹的魔法啊,再度出现!想对你说的话,如山似海。——AsahinaMiraiAsahinaMirai决战之后,魔法界和无魔法界分离,为了和RicoRico再次相见,MiraiMirai必须用经受考验,唤醒奇迹的魔法。 那考验就是——出现了nn个非负整数a1,a2,…,ana1,a2,…,an, 对于mm次询问,第jj次询问给定一个正整数xjxj, 输出max{a1XORxj,a原创 2017-07-25 16:26:00 · 307 阅读 · 0 评论 -
dsu_on_tree
大佬博客:https://codeforces.com/blog/entry/44351 使用范围:常用来求子树的信息,比如,如果一棵树上每个节点都有一种颜色,求一个子树中颜色c的出现次数 复杂度分析:这个就是启发式合并,每一次合并都将小的集合合并到大的集合,每个元素的合并次数最多为lognlognlogn次,看起来像是n2n2n^2的合并,实际复杂度只有nlognnlognnlogn,如果使...原创 2018-08-29 20:57:50 · 338 阅读 · 0 评论 -
牛客多校第四场 J题 Hash Function(线段树建图优化+拓扑排序)
传送门:https://www.nowcoder.com/acm/contest/142/J 题目大意就是给你一个散列表,还原出字典序最小的原序列 解法:通过推样例发现,一个数x如果不在x%n 的位置,那么从x%n 到当前数字位置i-1的区间内都已经被占满,那么考虑从x%n 到i-1 所有的点到i 建一条边,然后跑一次拓扑排序(这里渐变相当于是限制第i个数字一定比x%n 到i-1 的数字后出现...原创 2018-07-29 20:55:44 · 317 阅读 · 0 评论 -
线段树
An easy problem BN个数排成一列,每个数的大小为1或者0。有两种操作,第一种操作是把一段区间内的每个数异或1,第二种操作是询问区间内最长连续1的长度。Input第一行一个整数N(1≤N≤100000),表示N个数。第二行N个数。接下来一行一个整数M(1≤M≤100000),表示M个操作,接下来M行每行三个整数K,L,R。K=1表示把L到R这段区间的数全部异或上1,K=0表示询问L到R原创 2017-07-25 11:26:11 · 214 阅读 · 0 评论 -
线段树和rmq
An easy problem AN个数排成一列,Q个询问,每次询问一段区间内的数的极差是多少。Input第一行两个整数N(1≤N≤50000),Q(1≤Q≤200000)。接下来一行N个整数a1 a2 a3 ….an,(1≤ai≤1000000000)。接下来Q行,每行两个整数L,R(1≤L≤R≤N)。Output对于每个询问输出一行,一个整数表示区间内的极差。Sample Input5 33原创 2017-07-25 11:20:50 · 529 阅读 · 0 评论 -
bzoj2588 Spoj 10628. Count on a tree【主席树+lca】
传送门:https://www.lydsy.com/JudgeOnline/problem.php?id=2588 给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答u xor lastans和v这两个节点间第K小的点权。其中lastans是上一个询问的答案,初始为0,即第一个询问的u是明文。Input第一行两个整数N,M。 第二行有N个整数,其中第i个...原创 2018-04-03 20:31:39 · 162 阅读 · 0 评论 -
bzoj3524 Couriers【主席树裸题】
权限题 传送门:https://szkopul.edu.pl/problemset/problem/Cs38m8lWFnOfDskXf43HR3lN/site/?key=statementDescription给一个长度为n的序列a。1≤a[i]≤n。 m组询问,每次询问一个区间[l,r],是否存在一个数在[l,r]中出现的次数大于(r-l+1)/2。如果存在,输出这个数,否则输出...原创 2018-03-29 19:08:30 · 245 阅读 · 0 评论 -
bzoj3207 花神的嘲讽计划Ⅰ【主席树+hash】
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3207Description背景 花神是神,一大癖好就是嘲讽大J,举例如下: “哎你傻不傻的!【hqz:大笨J】” “这道题又被J屎过了!!” “J这程序怎么跑这么快!J要逆袭了!” …… 描述 这一天DJ在给吾等众蒟蒻讲题,花神在一边做题无聊,就跑到了一边跟吾等众蒟...原创 2018-03-27 16:41:59 · 136 阅读 · 0 评论 -
hdu4417 Super Mario【主席树模板题】
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=4417Problem DescriptionMario is world-famous plumber. His “burly” figure and amazing jumping ability reminded in our memory. Now the poor princess i...原创 2018-03-22 21:32:45 · 362 阅读 · 0 评论 -
后缀数组
后缀数组变量意义解释:sa[i]sa[i]sa[i]:第 iii 个后缀的排名rnk[i]rnk[i]rnk[i]:排名为 iii 的后缀在原字符串的位置,与 sasasa 数组意义相反tmp[i]tmp[i]tmp[i]:辅助数组height[i]height[i]height[i]:表示 sa[i]sa[i]sa[i] 和 sa[i−1]sa[i-1]sa[i−1] 两个后缀的 LC...原创 2019-07-28 22:06:27 · 125 阅读 · 0 评论