【BIT/ST表/线段树】
张松超
这个作者很懒,什么都没留下…
展开
-
HDU ~ 1394 ~ Minimum Inversion Number(暴力||归并排序||线段树||树状数组)
题目网址:Minimum Inversion NumberMinimum Inversion NumberTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Problem DescriptionThe inversion number of a given number sequen...原创 2017-07-23 10:31:22 · 444 阅读 · 0 评论 -
UVA ~ 11235 ~ Frequent values (RMQ + 游程编码)
题意:给出一个非降序排列的整数数组a1,a2,...,an,你的任务是对于一系列询问(i,j),回答ai,ai+1,...,aj中出现次数最多的值出现的次数。【输入格式】输入包含多组数据。每组数据每一行为两个整数n和q(1≤n,q≤100000)。第二行包含n个非降序排列的整数(-100000≤ai≤100000)。以下q行每行包含两个整数i和j(1≤i≤j≤n),输入结束标志为n=0。【输出格式...原创 2018-05-04 15:20:03 · 210 阅读 · 0 评论 -
UVALive ~ 4329 ~ Ping pong (树状数组)
题意:一条大街上任着n个乒丘球爱好者,经常组织比赛切磋技术。每个人都有一个不同技能值a[i],每场比赛需要3个人: 两名选手,一名裁判。他们有一个奇怪的规定,即裁判必须住在两名选手的中间,并且技能值也在两名选手之间。问一共能组织多少种比赛。【输入格式】输入第一行为数据组数T(1<T<20)。每组数据占一行,首先是整数n(3<=n<=20000)然后是个n不同的数即a[i]....原创 2018-05-04 10:04:24 · 303 阅读 · 0 评论 -
POJ ~ 2823 ~ Sliding Window (单调队列 or RMQ or 线段树)
题意:给你n个数字,现在有一个长度为k窗口,每次往右移动一位,问窗口中的最小值和最大值;思路:滑动窗口最值问题,用单调队列解。也可以用RMQ和线段树过。坑点:G++可能会超时,C++能过。单调队列://#include<bits/stdc++.h>#include <iostream>#include <cstdio>#include <cmath&...原创 2018-05-17 18:12:20 · 213 阅读 · 0 评论 -
UVALive ~ 3938 ~ Ray, Pass me the dishes!(线段树 动态区间最大和)
题意:给出一个长度为n的整数序列D,你的任务是对m个询问做出回答。对于询问(a,b),需要找到两个下标x和y,使得a≤x≤y≤b,并且D[x]+D[x+1]+...+D[y]尽量大。如果有多组满足条件的x和y,x应该尽量小。如果还有多解,y应该尽量小。【输入格式】输入包含多组数据。每组数据第一行为两个整数n和m(1≤n,m≤500000),即整数序列的长度和查询个数。第二行包含n个整数,一次为D1...原创 2018-05-07 22:02:12 · 297 阅读 · 0 评论 -
UVA ~ 11992 ~ Fast Matrix Operations (线段树 + 区间更新)
题意:有一个r行c列的全0矩阵,支持以下3种操作,如表3-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 查询子矩阵x1 y1 x2 y2的元素和、最小值和最大值。子矩...原创 2018-05-08 17:57:10 · 236 阅读 · 0 评论 -
Codeforces ~ 1005E(1,2) ~ Median on Segments (思维 or BIT)
题意n个数字,问m是多少个区间的中位数?E1:这n个数字是1~n的一个排列E2:n个数字,数字大小不超过2e5题解E1做法①: 51Nod ~ 1682 ~ 中位数计数 (思维)#include <bits/stdc++.h>using namespace std;const int MAXN = 4e5+5;const int FIX = 2e5;typedef long ...原创 2018-07-10 21:28:05 · 445 阅读 · 0 评论