数据结构
_wjunjie
加油吧!
展开
-
Joy OI 走廊泼水节 (最小生成树)
http://www.joyoi.cn/problem/tyvj-1391题目限制时间限制 内存限制 评测方式 题目来源 1000ms 131072KiB 标准比较器 Local 题目背景话说,中中带领的OIER们打算举行一次冬季泼水节,当然这是要秘密进行的,绝对不可以让中中知道。不过中中可是老江湖了,当然很快就发现了我们的小阴谋,于...原创 2020-10-06 23:26:34 · 353 阅读 · 0 评论 -
2619 三个好朋友 (字符串Hash模板)
2619 三个好朋友有三个好朋友喜欢在一起玩游戏,A君写下一个字符串S,B君将字符串S复制一遍得到两个S拼接而成的字符串T,C君在T的任意位置(包括首尾)插入一个字符得到U.现在你得到了U,请你找出S。比如得到U串为ABABA。那么S串有可能是AB,T串为ABAB,之后在最后一个位置插入A,得到ABABA。S串还有可能是BA,T串为BABA,之后在第一个位置插入A,...原创 2019-08-13 11:46:22 · 909 阅读 · 0 评论 -
暑假练习赛1——Problem D(Delete from the Left,字符串)
原题链接:http://codeforces.com/contest/1005/problem/B Problem DTime Limit : 2000/1000ms (Java/Other) Memory Limit : 524288/262144K (Java/Other)Total Submission(s) : 5 Accepted Submission(s) : ...原创 2018-07-31 19:58:48 · 303 阅读 · 0 评论 -
单调队列和单调栈的应用
单调队列和单调栈的应用单调队列“单调队列,就是一个符合单调性质的队列,它同时具有单调的性质以及队列的性质。他在编程中使用频率不高,但却占有至关重要的地位。它的作用很简单,就是为了维护一组单调数据,让我们在运行的过程中能够快速寻求前k个或后k个中最大或最小的值。”可以查询区间最值(不能维护区间k大,因为队列中很有...原创 2019-05-30 20:58:50 · 343 阅读 · 0 评论 -
BZOJ 1345(单调栈+思维)
~by Wjvje,2019-5-9题目描述: 1345: [Baltic2007]序列问题SequenceDescription 对于一个给定的序列a1,…,an,我们对它进行一个操作reduce(i),该操作将数列中的元素ai和ai+1用一个元素max(ai,ai+1)替代,这样得到一...原创 2019-05-09 22:13:14 · 204 阅读 · 0 评论 -
HDU 1506 (单调递增栈/模板)
~by Wjvje,2019-5-9 131. 直方图中最大的矩形直方图是由在公共基线处对齐的一系列矩形组成的多边形。矩形具有相等的宽度,但可以具有不同的高度。例如,图例左侧显示了由高度为2,1,4,5,1,3,3的矩形组成的直方图,矩形的宽度都为1:通常,直方图用于表示离散分布,例...原创 2019-05-09 20:44:42 · 211 阅读 · 0 评论 -
HDU 3410(递减单调栈)
~by Wjvje,2019-5-9题目描述: 现在有n个人站成一行,告诉你每个人的身高。 现在每个人都要找到在他左边,比他矮的人中最高的人的位置。 同时也要找到,在他右边比他矮的人中最高的人的位置。 注意由于他们是站成一行的,所以他们不能越过比他们高的人去看后面的人。也就是说,他只能看到他本人和他的左边(或右...原创 2019-05-09 00:42:38 · 277 阅读 · 0 评论 -
POJ3250 牛的视野(单调栈)
~by Wjvje,2019-5-8题目描述: Bad Hair DayTime Limit:2000MS Memory Limit:65536K Total Submissions:24620 Accepted:8363 Description...原创 2019-05-09 00:02:07 · 447 阅读 · 0 评论 -
BZOJ 4750 单调栈+异或性质
链接:https://www.lydsy.com/JudgeOnline/problem.php?id=4750题意:长度为N的序列,求 首先对于这种异或求和的问题,一般都是按位拆分然后分别计算贡献。所以上式子可以化简为 (b【k】指L~R所有元素二进制分解后第K位的异或和)。两个N的for循环显然会超时,所以想办法优化,我们不妨先将K的枚举提到最前面...原创 2019-04-06 22:14:47 · 273 阅读 · 0 评论 -
单调队列专题总结
1、HDU - 4193题意: n个数组成的序列环,求长度小于等于m的字串的最大区间和。思路: 如果n个数为线性关系,可以用单调队列维护第i个数之前的m个数,及时剔除没用的数。o(N)解决。这里是环,2倍数组破环成链即可。(代码非自己写)#include<stdio.h>#include<string.h&g...原创 2019-04-06 00:44:56 · 270 阅读 · 0 评论 -
尺取法题目总结
1、HDU - 5358*题意:n个数组成的序列,n<=1e5,1e5>=Ai>=0,求解:(S(i,j)表示和):思路:暴力:O(N*N)枚举所有子区间,前缀和求和计算。思考,log2那个括号就是求i~j区间和的二进制位数,因为所有元素非负,所以二进制位数是在不断增加的,所以可以一层枚举二进制位数,一层尺取数组元素判断区间和的二进制位数是否符合要求,时间复...原创 2019-04-07 14:06:59 · 305 阅读 · 0 评论 -
CH Round #56 异象石(”动态查询树节点之间的路径长度” 时间戳+树上倍增LCA+map/set)
链接:http://contest-hunter.org:83/contest/CH%20Round%20%2356%20-%20%E5%9B%BD%E5%BA%86%E8%8A%82%E6%AC%A2%E4%B9%90%E8%B5%9B/%E5%BC%82%E8%B1%A1%E7%9F%B3题意:给出一n节点的树状结构,m此操作,每次操作有3种选择,第一种:某块石头出现、第二种:某块石头消失...原创 2018-12-21 12:28:41 · 382 阅读 · 0 评论 -
POJ 3471(倍增LCA+树上差分)
链接:http://poj.org/problem?id=3417题意: 一张n节点连通无向图,n-1条树边,m条非树边。若通过先删一条树边,再删一条非树边想操作 将此图划分为不连通的两部分,问有多少种方案。思路: 经过“复杂”的思考会发现,将连通图分成两部分有以下两种方法。①某树边没有被任何非树边覆盖,那么只需要删除该树边即完成划分。②某树...原创 2018-12-18 16:36:54 · 258 阅读 · 0 评论 -
12.16+树上倍增法求LCA
树上倍增求LCA的步骤:1.预处理:节点的深度d、到根节点的距离dist、该点向上走2^k步能够到达的点:f数组。2.lca:①.将两个节点调整到同一个深度,只调整深的那个即可。②.如果①结束后,这两个点重合,说明该点就是所求的点。③.否则,从大往小开始试跳跃的步数,直至将这两个点调整为目标点的两个子节点。最后两点的父节点就是所求的LCA。例题:H...原创 2018-12-16 20:45:29 · 212 阅读 · 0 评论 -
树形dp求树直径、两次dfs求树直径
树形dp求树直径:#include<bits/stdc++.h>#include<ctime>#define ll long longusing namespace std;const int N=100010,M=1000010;int head[N];int ver[M];int edge[M];int Next[M];bool v[N];in...原创 2018-12-10 22:37:00 · 1407 阅读 · 0 评论 -
12.9日+基环树 dfs找环
基环树就是在一棵树上加一条边的图。一般结合其他树形dp、树的直径等题型考察,有一定难度。处理方法一般都是先找环。例如这道题目,BZOJ 1791 [Ioi2008] Island 岛屿:https://www.lydsy.com/JudgeOnline/problem.php?id=1791,求基环树森林的树直径之和。后面的树形dp不会,但找环和求以某点为根的子树的深度还是可以的...原创 2018-12-10 00:22:57 · 1768 阅读 · 0 评论 -
2019 南京 网络赛 B (二维偏序,树状数组离线)
题意: 给出一N*N的蛇形矩阵,具体位置元素值不给你,自己找规律,然后给你M个有效位置,P次查询,每次查询一个子矩阵中有效元素的权值和,该权值和等于对于每个有效元素,模10拆分后相加得到的和。(注意有效点以及询问x、y所代表的含义,是x轴,y轴)。input13 4 41 12 23 32 31 1 1 12 2 3 31 1 3 31 2 ...原创 2019-09-03 22:11:21 · 215 阅读 · 0 评论 -
HDU 5877 Weak Pair (树状数组:序列中比arr【i】小的数的数目)
Weak PairProblem DescriptionYou are given arootedtree ofNnodes, labeled from 1 toN. To theith node a non-negativevalueaiis assigned.Anorderedpair of nodes(u,v)is said to beweakif...原创 2019-08-17 15:45:56 · 142 阅读 · 0 评论 -
HDU 1394 Minimum Inversion Number 最小逆序对数(树状数组求逆序对+数论知识)
题目描述:Minimum Inversion NumberProblem DescriptionThe inversion number of a given number sequence a1, a2, ..., an is the number of pairs (ai, aj) that satisfy i < j and ai > aj.For a giv...原创 2019-07-21 10:02:50 · 235 阅读 · 0 评论 -
HDU 4000 Fruit Ninja(树状数组求逆序对、正序对 应用)
链接:http://acm.hdu.edu.cn/showproblem.php?pid=4000题意: 给出n个数的一组排列,n:1~1e5,问其中有几组满足关系x<y<z且Ax<Az<Ay的组合。思路: 拿到这题,首先肯定能想到和树状数组求逆序数相联系,但一直在正向考虑,中Ay前面比它小的数有多少,比它大的数有多少,然...原创 2019-01-23 20:35:34 · 335 阅读 · 0 评论 -
HDU 5124 lines 离散化 / 树状数组离散化
链接:http://acm.hdu.edu.cn/showproblem.php?pid=5124题意: 坐标轴上给出n条线段,问坐标轴上被最多线段覆盖的点。思路:首先,我们应该知道,对于线段x~y,可以用x位置加一和y+1位置减一然后遍历坐标轴的方法统计最优解。但因为点坐标数据范围10^9,所以数组肯定装不下,所以离散化一下,压缩为10^5的数据量,再遍历1...原创 2019-01-19 18:32:07 · 217 阅读 · 0 评论 -
牛客小白月赛 树状数组求逆序对+离散化
链接:https://ac.nowcoder.com/acm/contest/358/D来源:牛客网题目描述出题人的妹子送了出题人一个手环,这个手环上有 n 个珠子,每个珠子上有一个数。有一天,出题人和妹子分手了,想把这个手环从两个珠子间切开,并按顺时针顺序展开成一条链。可以发现,这条链一共有 n 种可能性。求这 n 种可能性的逆序对数之积模 1000000007。输...原创 2019-01-19 12:06:23 · 252 阅读 · 0 评论 -
POJ 2352 Stars(树状数组 求 正序对,PS:树状数组0位置的元素不可用)
题目链接:http://poj.org/problem?id=2352题目大意: 按照y1<=y2,x1<=x2的优先级顺序给出n个坐标点,顺序求出横纵坐标均小于等于第i(i:1~n)个点的点的个数。分析: 因为已经确定n个点的纵坐标时是从小到大排列的,所以问题的解决转换为求第i个点之前有多少个比啊a[i]小或者等于a[i]的数...原创 2018-11-22 20:26:18 · 286 阅读 · 0 评论 -
10.25总结+树状数组入门
树状数组就是记录某一序列的前缀和的数组,不同情况下数组的下标可能不同,例如单纯的统计序列1~n前缀和的话,在1~n范围上维护树状数组,而对于像求逆序对或者统计序列中 某一段内 共有多少个数 这样的题目,则需要在序列数值范围上维护树状数组。 树状数组最基本的操作是区间查询和单点增加。 由此可拓展出来的题型有 ...原创 2018-10-26 08:38:02 · 182 阅读 · 0 评论 -
Codeforces Round #145 F. TorCoder 26棵线段树维护字母变化?一颗就够了
F. TorCodertime limit per test3 secondsmemory limit per test256 megabytesinputinput.txtoutputoutput.txtA boy named Leo doesn't miss a single TorCoder contest round. On the last TorCoder round n...原创 2019-08-02 18:00:06 · 175 阅读 · 0 评论 -
2476 小b和序列(正解 :“枚举” + “贪心” / 自己:线段树乱搞)
题目描述:2476 小b和序列小b有一个长度为n的序列a,她想求,即选出两个数,使得它们的最小值乘上它们在序列上的距离最大。你能帮帮她吗?样例解释:选择a2和a9,答案为min(8,7)×(9−2)=49,不存在其他选法答案更大,因此最大值就是49。输入第一行一个数n,0<n≤50000;第二行n个数表示a_i,以空格隔开,0<=a_i<...原创 2019-07-27 22:45:46 · 364 阅读 · 0 评论 -
1785 数据流中的算法(统计问题——区间中位数的维护:STL multiset / 线段树)
1785 数据流中的算法51nod近日上线了用户满意度检测工具,使用高级人工智能算法,通过用户访问时间、鼠标轨迹等特征计算用户对于网站的满意程度。现有的统计工具只能统计某一个窗口中,用户的满意程度的均值。夹克老爷想让你为统计工具添加一个新feature,即在统计均值的同时,计算窗口中满意程度的标准差和中位数(均值需要向下取整)。输入第一行是整数n与k,代表有n次操...原创 2019-07-27 15:54:09 · 835 阅读 · 0 评论 -
POJ 2828 Buy Tickets(找第K空位——插队问题 线段树 解决)
题目描述:Buy TicketsRailway tickets were difficult to buy around the Lunar New Year in China, so we must getup early and join a long queue…The Lunar New Year was approaching, but unluckily the...原创 2019-07-25 17:20:06 · 165 阅读 · 0 评论 -
1631 小鲨鱼在51nod小学(线段树区间修改+单点查询:不用下传lazy的区间修改)
题目描述:1631 小鲨鱼在51nod小学鲨鱼巨巨2.0(以下简称小鲨鱼)以优异的成绩考入了51nod小学。并依靠算法方面的特长,在班里担任了许多职务。每一个职务都有一个起始时间A和结束时间B,意为小鲨鱼在[A, B]时间内,担任了某职务(inclusively)。现在给定小鲨鱼的职务履历表,你可以高效的给出小鲨鱼在某天担任了哪些职务吗?p.s. 由于小鲨鱼担任的职务太多...原创 2019-07-24 15:39:26 · 175 阅读 · 0 评论 -
HDU 2795 Billboard(这能看出是线段树?线段树求最值变形)
题目描述:BillboardAt the entrance to the university, there is a huge rectangular billboard of sizeh*w (h is its height and w is its width). The board is the place where all possibleannouncement...原创 2019-07-23 22:24:26 · 176 阅读 · 0 评论 -
1562 玻璃切割 (线段树最长连续元素“1”个数 or 逆向模拟过程题型+链表)
1562 玻璃切割现在有一块玻璃,是长方形的(w 毫米×h毫米),现在要对他进行切割。切割的方向有两种,横向和纵向。每一次切割之后就会有若干块玻璃被分成两块更小的玻璃。在切割之后玻璃不会被移动。现在想知道每次切割之后面积最大的一块玻璃是多少。样例解释:对于第四次切割,下面四块玻璃的面积是一样大的。都是2。输入单组测试数据。第一行有三个整数 w,h,n (2...原创 2019-07-23 09:08:44 · 267 阅读 · 0 评论 -
HDU 1166 敌兵布阵(线段树模板:单点修改+区间查询和)
题目描述:敌兵布阵Problem DescriptionC国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发生变动,可能增加或减...原创 2019-07-20 16:45:54 · 90 阅读 · 0 评论 -
HDU 3911(线段树——区间合并)
~by Wjvje 2019.5.7题目描述: Black And WhiteTime Limit: 9000/3000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 6160Accep...原创 2019-05-08 00:11:06 · 230 阅读 · 0 评论 -
POJ 1177/HDU 1828 (线段树+扫描线+求周长,注意有重边的情况)
Sample Input:7-15 0 5 10-5 8 20 2515 -4 24 140 -6 16 42 15 10 2230 10 36 2034 0 40 16Sample Output228#include<iostream> #include<algorithm>#include<cstring>...原创 2019-05-10 21:23:24 · 186 阅读 · 0 评论 -
HDU 1255(线段树优化扫描线——矩形交集)
~by Wjvje 2019-5-3题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1255题目描述: 覆盖的面积Time Limit: 10000/5000 MS (Java/Others)Memory Limit: 65536/32768 K (...原创 2019-05-03 21:20:32 · 402 阅读 · 0 评论 -
POJ 1151 (扫描线+线段树优化+离散化处理,模板)
~by Wjvje 2019-5-2题目链接:http://poj.org/problem?id=1151题目描述:AtlantisTime Limit:1000MS Memory Limit:10000K Total Submissions:28239 Accepted:10135 DescriptionThere ar...原创 2019-05-02 22:35:11 · 190 阅读 · 0 评论 -
POJ 3468 区间修改+区间求和 (树状数组/线段树)
~by Wjvje 2019-4-30题目链接:http://poj.org/problem?id=3468题目描述: A Simple Problem with IntegersTime Limit:5000MS Memory Lim...原创 2019-04-30 22:08:30 · 258 阅读 · 0 评论 -
HDU 1754 单点修改的区间最值(线段树/树状数组)
~by Wjvje题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1754题目描述: I Hate ItTime Limit: 9000/3000 MS (Java/Others)Memory Limit: 32768/32768 K (...原创 2019-04-30 16:41:00 · 243 阅读 · 0 评论 -
线段树基础
线段树模板:(单点增加+区间查询(查询序列最大值))#include<bits/stdc++.h>using namespace std;const int SIZE=100100;struct SegmentTree{ int l,r; int dat;}t[SIZE*4];int a[SIZE];void build(int p,int l...原创 2018-11-09 20:50:17 · 122 阅读 · 0 评论 -
codeforces 633 C. Spy Syndrome 2(字典树建树+查询+暴搜记忆化优化)
题意: 给出长度为n的加密过的字符串,m个长度不定的单词,从这m个单词中选择相应单词解密被加密的字符串。加密规则:单词字母均变为小写字母、将单词倒置、原句子去空格拼接单词。思路: 将m个单词按题目需求建树,节点处保存对应单词在原字符串数组中位置,查询可行解时在字典树查询框架基础上暴搜可行解即可。注意记忆化处理一下不可行解,否则会超时。 另外字典树第一维开到...原创 2019-02-01 21:05:07 · 312 阅读 · 0 评论