数据结构-----线段树和树状数组
SingleK
这个作者很懒,什么都没留下…
展开
-
51Nod 1019 - 逆序数(BIT)
1019 逆序数基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。如2 4 3 1中,2 1,4 3,4 1,3 1是逆序,逆序数是4。给出一个整数序列,求该序列的逆序数。Input第1行:N,N为序列的长度(n <= 500...原创 2017-12-13 22:42:53 · 285 阅读 · 0 评论 -
UVALive 4730 - Kingdom(并查集+线段树)
题目链接 https://cn.vjudge.net/problem/UVALive-4730【题意】 平面上有n个城市,初始时城市之间没有任何双向道路相连,你的任务是依次执行以下指令 road A B 在城市A,B之间建立一条双向道路,保证这条道路不和其它道路在非端点处相交 line C 询问一条y=C的水平线和多少个州相交,以及这些州一共包含多少个城市,在任意时刻,每一组连通的城市形...原创 2018-08-12 19:02:20 · 190 阅读 · 0 评论 -
UVALive 5902 - Movie collection(BIT)
题目链接 https://cn.vjudge.net/problem/UVALive-5902【题意】 给你一个长度为n的序列,刚开始序列从前到后分别为1,2,3…n,之后有若干次如下操作 每次选中一个元素x,统计序列中在x前面的元素有多少个,然后把x放到第一位【输入格式】 多组输入,第一行为数据组数T. 之后每组数据第一行有两个整数n,m(n,m<=1e5)代表序列长度和操作...原创 2018-08-13 10:18:14 · 124 阅读 · 0 评论 -
HDU 1556 - Color the ball(线段树)
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1556【题目描述】N个气球排成一排,从左到右依次编号为1,2,3…N.每次给定2个整数a b(a <= b),lele便为骑上他的“小飞鸽"牌电动车从气球a开始到气球b依次给每个气球涂一次颜色。但是N次以后lele已经忘记了第I个气球已经涂过几次颜色了,你能帮他算出每个气球被涂过几次颜色吗?...原创 2018-09-18 16:40:17 · 122 阅读 · 0 评论 -
POJ 2828 - Buy Tickets(线段树)
题目链接 https://cn.vjudge.net/problem/POJ-2828【题意】有N个人排名买票,现在给出每个人要插入的位置pos(0&lt;=pos&lt;=N-1)以及他的价值val. 在插入N个人后,会构成一个新序列. 现在让你按顺序输出新序列中每个位置pos对应的价值val【思路】首先我们知道——最后一个人一定会得到当前队伍他想要的位置,我们可以选择逆过程插入,这样的...原创 2018-09-25 11:55:57 · 123 阅读 · 0 评论 -
POJ 3468 - A Simple Problem with Integers(线段树区间更新)
题目链接 https://cn.vjudge.net/problem/POJ-3468【题意】给定长度为 NNN 的序列 AAA,有 QQQ次操作,操作分两种C a b cC \ a \ b \ cC a b c 表示将序列中 A[a,b]A[a,b]A[a,b]所有元素都加上一个数字 cccQ a bQ \ ...原创 2018-09-20 10:19:29 · 90 阅读 · 0 评论 -
POJ 2299 - Ultra-QuickSort(BIT)
题目链接 https://cn.vjudge.net/problem/POJ-2299【题意】给你一组长度为NNN的序列A(N&lt;=5×105,Ai&lt;=109)A(N&lt;=5×10^5,A_i&lt;=10^9)A(N<=5×105,Ai<=109),求出序列中逆序对的个数【思路】先对序列中的元素进行离散化,然后用树状数组去优化即...原创 2018-09-20 10:41:37 · 96 阅读 · 0 评论 -
HDU 1394 - Minimum Inversion Number(BIT)
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1394【题意】已知一个数列AAA,数列长度n&lt;=5000n&lt;=5000n<=5000,AiA_iAi范围在[0,n−1][0,n-1][0,n−1],并且不重复,也就是说AAA是一个[0,n−1][0,n-1][0,n−1]的排列。每次可以将数列的第一个数移动到最...原创 2018-09-20 11:15:52 · 97 阅读 · 0 评论 -
HDU 1541 - Stars(BIT)
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1541【题意】有nnn个星星,每一个星星都有自己的坐标。我们定义一个星星的等级为该星星左下方所有的星星数目,输出[0,n−1][0,n-1][0,n−1]个等级所对应的星星数目(比如说等级为0的星星有两个,那么输出等级0时就输出2)【思路】可以先按xxx坐标排序,然后从前往后枚举,这样可以保证枚...原创 2018-09-20 11:50:58 · 108 阅读 · 0 评论 -
POJ 2886 - Who Gets the Most Candies?(线段树+模拟)
题目链接 https://cn.vjudge.net/problem/POJ-2886【题意】NNN 个孩子顺时针坐成一个圆圈(编号从 111 到 NNN ),每个孩子手中有一张卡片(上有一个非0整数)现在让第K个孩子先淘汰,如果该孩子手中卡片上的数字A大于零,下一个出圈的是他左手边第A个孩子,否则,下一个出圈的是他右手边第A个孩子(当前孩子已经不算在圈中了)第 ppp 个出圈的孩子会得到 ...原创 2018-09-25 21:03:35 · 114 阅读 · 0 评论 -
POJ 3667 - Hotel(线段树区间合并)
题目链接 https://cn.vjudge.net/problem/POJ-3667【题意】有 nnn 个连续房间, qqq 次操作,操作分两种类型1&amp;nbsp;&amp;nbsp;x1 \ \ x1&amp;nbsp;&amp;nbsp;x 占据一段长度为 xxx 的连续空房间,若有多个满足,尽量选择靠左的,输出选择区间的起点2&amp;nbsp;&amp;nbsp;x&am原创 2018-09-26 15:32:29 · 130 阅读 · 0 评论 -
HDU 3308 - LCIS(线段树区间合并)
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=3308【题意】给定长度为 nnn 的序列,有2种操作U A BU \ A \ BU A B 将下标为 AAA 的元素修改为 BBBQ A BQ \ A \ BQ A B 查询区间 [A,B][A,B][A,B] 的最...原创 2018-09-26 17:03:48 · 142 阅读 · 0 评论 -
POJ 2528 - Mayor's posters(线段树+离散化)
题目链接 https://cn.vjudge.net/problem/POJ-2528【题意】一个城市要竞选市长,竞选者可以在一块墙上贴海报为自己拉票,每个人可以贴连续的一块区域,后来贴的可以覆盖前面的,问到最后一共可以看到多少张海报。一共有 NNN 名竞选者 (N&lt;=10000)(N&lt;=10000)(N<=10000),每名竞选者的海报覆盖范围 [l,r][...原创 2018-09-21 10:53:34 · 154 阅读 · 0 评论 -
HDU 2795 - Billboard(线段树)
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2795【题意】有一个高 hhh 宽 www 的公告栏,现在要在上边贴 NNN 个 1∗W1*W1∗W 的公告。要求要在能够完全放下的区域贴公告,并且贴公告时遵循最上最左的原则。问你每张公告分别贴在第几行,若公告无法插入输出 (−1(-1(−1 N&lt;=2×105 h...原创 2018-09-21 11:55:56 · 126 阅读 · 0 评论 -
HDU 2871 - Memory Control(线段树区间合并+STL)
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2871【题意】有 nnn 个连续单元的内存空间和 qqq 次操作,每次开辟的连续单元的内存称为 blockblockblock,操作分 444 种New xNew \ \ xNew x开辟一个新的 blockblockblock,使它具有连续 xxx...原创 2018-09-26 23:35:33 · 158 阅读 · 0 评论 -
HDU 4325 - Flowers(线段树区间更新+离散化)
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=4325【题意】有 nnn 朵花,已经给出每朵花的开花时间 [si,ei][s_i, e_i][si,ei],现在有 mmm 次查询,对查询值 xxx,输出在时间点 xxx 开花的个数(n,m&lt;=105,si,ei&lt;=109n,m&lt;=10^5,s_i,e_...原创 2018-10-08 20:57:02 · 128 阅读 · 0 评论 -
POJ 2777 - Count Color(线段树区间更新+状态压缩)
题目链接 https://cn.vjudge.net/problem/POJ-2777【题意】有一个长度为 LLL 的区间 [1,L][1,L][1,L] ,有 TTT 种颜色可以涂,有 QQQ 次操作,操作分两种C A B CC \ A \ B \ CC A B C 把区间 [A,B][A,B][A,B] 涂成第 CCC 种颜色...原创 2018-10-09 09:06:44 · 138 阅读 · 0 评论 -
POJ 1769 - Minimizing maximizer(线段树优化DP)
题目链接 https://cn.vjudge.net/problem/POJ-1769【题意】有总长为 nnn 的区间 [1,n][1,n][1,n],还有 mmm 个小区间 [xi,yi]&nbsp;(1&amp;lt;=xi&amp;lt;=yi&amp;lt;=n)[x_i,y_i] \ (1&amp;lt;=x_i&amp;lt;=y_i&amp;lt;=n)[xi,yi]&a原创 2018-10-09 10:56:37 · 160 阅读 · 0 评论 -
UVA 11525 - Permutation(BIT+二分)
题目链接 https://cn.vjudge.net/problem/UVA-11525【题意】 给定整数k,输出1~k的所有排列中,按照字典序从小到大排序后的第n个(编号从0开始)由于n可能很大,本题用k个整数S[1],S[2]…S[k]来间接给出n,方式如下 n=S[1]×(k-1)!+S[2]×(k-2)!+…+S[k]×0!【输入格式】 多组输入,第一行为数据组数T(T<...原创 2018-08-11 22:40:42 · 129 阅读 · 0 评论 -
UVALive 4108 - SKYLINE(线段树区间更新)
题目链接 https://cn.vjudge.net/problem/UVALive-4108【题意】 在地平线上依次建造n座建筑物,建筑物的修建按照从后往前的顺序,新建筑物可能会挡住一些老建筑物。在修建完一座建筑物后,统计它在多长的部分是最高的(可以和其他建筑物并列最高),把这个长度称为该建筑的“覆盖度”【输入格式】 多组输入,第一行为数据组数。每组数据第一行为建筑物个数n(1&lt...原创 2018-08-11 10:55:03 · 126 阅读 · 0 评论 -
HDU 3974 - Assign the task(线段树+树结构)
Assign the taskTimeLimit: 15000/5000 MS (Java/Others) Memory Limit:32768/32768 K (Java/Others)Total Submission(s): 3842 Accepted Submission(s): 1592ProblemDescriptionThere is a company that has ...原创 2017-11-12 20:45:02 · 205 阅读 · 0 评论 -
HDU 1540 - Tunnel Warfare(线段树区间合并)
Tunnel WarfareTimeLimit: 4000/2000 MS (Java/Others) Memory Limit:65536/32768 K (Java/Others)Total Submission(s): 10244 Accepted Submission(s): 4023ProblemDescriptionDuring the War of Resistance ...原创 2017-11-05 19:47:16 · 216 阅读 · 0 评论 -
hdu 4027 - Can you answer these queries?(线段树+思维)
Can you answerthese queries?TimeLimit: 4000/2000 MS (Java/Others) Memory Limit:65768/65768 K (Java/Others)Total Submission(s): 19795 Accepted Submission(s): 4683ProblemDescriptionA lot of battle...原创 2017-11-02 23:53:43 · 154 阅读 · 0 评论 -
ZOJ 1610 - Count the Colors
Count the ColorsTime Limit: 2 Seconds Memory Limit: 65536 KB Paintingsome colored segments on a line, some previously painted segments may becovered by some the subsequent ones.Your task iscounti...原创 2017-11-02 17:40:01 · 171 阅读 · 0 评论 -
HDU 1698 - Just a Hook
Just a HookTimeLimit: 4000/2000 MS (Java/Others) Memory Limit:32768/32768 K (Java/Others)Total Submission(s): 36149 Accepted Submission(s): 17638ProblemDescriptionIn thegame of DotA, Pudge’s mea...原创 2017-11-02 00:08:24 · 163 阅读 · 0 评论 -
HDU 1754 - I Hate It
I Hate ItTimeLimit: 9000/3000 MS (Java/Others) Memory Limit:32768/32768 K (Java/Others)Total Submission(s): 85181 Accepted Submission(s): 32664ProblemDescription很多学校流行一种比较的习惯。老师们很喜欢询问,从某某到某某当中,分...原创 2017-11-01 18:03:13 · 202 阅读 · 0 评论 -
HDU 1166 - 敌兵布阵
敌兵布阵TimeLimit: 2000/1000 MS (Java/Others) Memory Limit:65536/32768 K (Java/Others)Total Submission(s): 101811 Accepted Submission(s):43040ProblemDescriptionC国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下...原创 2017-11-01 00:23:21 · 145 阅读 · 0 评论 -
CodeForces 540E - Infinite Inversions(离散化+BIT)
题目链接 https://cn.vjudge.net/problem/CodeForces-540E【题意】 有一个无限长的序列,1,2,3,…n,n+1…,现在要将它们中的某些元素交换,问你交换后所得的序列中逆序对的总数是多少?【输入格式】 第一行为整数n,代表要序列中要交换的位置,接下来n行,每行两个位置,ai,bi代表序列中处于ai和位置的元素发生一次交换(n<=1e5,...原创 2018-04-14 13:06:32 · 248 阅读 · 0 评论 -
UVALive 4329 - Ping Pong(BIT)
题目链接 https://vjudge.net/problem/UVALive-4329【题意】 一条大街上住着n个乒乓球爱好者,经常组织比赛切磋技术,每个人都有一个不同的技能值a[i],每次比赛需要三个人,两名选手和一名裁判。他们有一个奇怪的规定,即裁判必须住在两名选手之间,且技能值也必须在两名选手之间。问你一共能组织多少次比赛?【思路】 考虑第i个人当裁判,设a(1)~a(i-1)...原创 2018-05-22 23:29:15 · 144 阅读 · 0 评论 -
UVA 12299 - RMQ with Shifts(线段树单点更新+模拟)
题目链接 https://cn.vjudge.net/problem/UVA-12299【题意】 对于一个给定的数组A[1],A[2]…A[n],支持以下两种操作 query(L,R) 查询区间[L,R]中的最小元素值 shifti(i1,i2,..ik) 把元素A[i1],A[i2]…A[ik]的元素循环左移一位 如A={6,2,4,8,5,1,4},执行shift(2,4,5,7)...原创 2018-06-13 23:18:11 · 207 阅读 · 0 评论 -
UVALive 2191 - Potentiometers(BIT)
题目链接 https://cn.vjudge.net/problem/UVALive-2191【题意】 给定n个整数的数组,实现以下两种操作 S x y 把第x个数改成y(1<=x<=n, 0<=y<=1000) M x y 计算区间[x,y]的元素之和 (1<=x<=y<=n)【输入格式】 最多两组输入数据,每组数据第一行为整数n(1&l...原创 2018-06-14 20:25:54 · 170 阅读 · 0 评论 -
UVA 11992 - Fast Matrix Operations(线段树区间更新)
题目链接 https://cn.vjudge.net/problem/UVA-11992【题意】 有一个r行c列的全0矩阵,支持以下3种操作 1 x1 y1 x2 y2 v 子矩阵(x1,y1,x2,y2)的所有元素增加v(v>0) 2 x1 y1 x2 y2 v 子矩阵(x1,y1,x2,y2)的所有元素设为v(v>0) 3 x1 y1 x2 y2 ...原创 2018-06-09 10:23:37 · 173 阅读 · 0 评论 -
UVALive 3938 - "Ray, Pass me the dishes!"(线段树区间合并)
题目链接 https://cn.vjudge.net/problem/UVALive-3938【题意】 给定一个长度为n的整数序列D,你的任务是对m个询问作出回答。对于询问(a,b),需要找到两个下标x,y,使得a<=x<=y<=b,并且D(x)+D(x+1)+…+D(y)的值最大,如果有多解,要让x尽可能小,如果x确定后还有多解,要让y尽可能小。【输入格式】 多组输...原创 2018-06-02 11:15:28 · 217 阅读 · 0 评论 -
HDU 6318 - Swaps and Inversions [2018杭电多校联赛第二场 J](离散化+逆序对)
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=6318【题意】 ’给你一个长度为n的序列,序列中每存在一个逆序对就会产生x的代价,你也可以交换序列中相邻的元素来消除一些逆序对,交换一次的代价为y,求怎样操作使得序列最终产生的代价最小【输入格式】 多组输入,第一行为n,x,y(n,x,y<1e5)代表序列长度和两种不同的代价,第二行为...原创 2018-07-28 19:40:39 · 181 阅读 · 0 评论 -
HDU 6315 - Naive Operations [2018杭电多校联赛第二场 G](线段树区间更新)
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=6315【题意】 给定两个长度为n的整数序列a和b,a初始值为全0,b的初始值为一个[1,n]的排列,现在有以下两种操作: 1.add L R 把序列a中[L,R]的元素全部加1 2.query L R 求区间[L,R]的所有ai/bi的和,ai/bi是整除【输入格式】 多组输入,第一行两...原创 2018-07-27 12:17:02 · 168 阅读 · 0 评论 -
HDU 1542 - Atlantis(矩形面积并:离散化+线段树+扫描线)
算法详解: https://blog.csdn.net/tomorrowtodie/article/details/52048323【题意】 平面直角坐标系上给定n个矩形,每个矩形用左下角坐标(x1,y1)和右上角坐标(x2,y2)描述,求这些矩形覆盖的总面积是多少【思路】 线段树和扫描线的经典应用,看了别人的博客学会的,如果从下往上扫描的话,就要对横坐标离散化处理,然后根据横坐标离散...原创 2018-08-06 11:00:02 · 229 阅读 · 0 评论 -
UVA 1492 - Adding New Machine(矩形面积并变形)
题目链接 https://cn.vjudge.net/problem/UVA-1492【题意】 在一个W×H的矩形方格中要放置一个1×M的物品(可以横着放也可以竖着放),但是有一些子矩形的位置已经被占用了,给你这些子矩形的信息,问你还能有多少种不同的方案去排放这个物品【输入格式】 多组输入,每组数据第一行为4个整数W,H,N,M(W,H<=1e7, N,M<=1e5)分别代...原创 2018-08-14 13:00:19 · 224 阅读 · 1 评论 -
51Nod 1461 - 稳定桌(枚举+线段树)
【题目描述】【思路】线段树还是写的少,不知道还有这样子的用法看了别人的题解,这道题是要枚举所有的长度,然后计算把当前长度作为最长桌腿时消耗的最小代价,取最小值就是答案. 当枚举某个长度 iii 时,要把比 iii 长的桌腿都删掉,这个可以用代价的前缀和处理. 然后看一看现在长度为 iii 的桌腿有没有超过剩下桌腿的一半,超过了直接更新答案,如果没超过那么还要删掉一定数量的长度比 iii 小...原创 2018-11-11 22:31:34 · 309 阅读 · 0 评论