【树状数组 / 差分】
sugarbliss
我想要的不多,只是和多数人不一样。
展开
-
HDU 4911 (树状数组求逆序数+离散化)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4911 题意:最多可以交换K次,就最小逆序对数。 思路:逆序数定理,当逆序对数大于0时,若ai<ai+1,那么交换后逆序对数+1,反之-1。所以只需要求一下逆序数的个数就行了。逆序数的求解可以用树状数组。我们用树状数组维护某个区间中数字出现的个数,将原数据按其原来顺序插入树状数组,第i个数字插...原创 2018-12-21 17:45:53 · 374 阅读 · 0 评论 -
The Preliminary Contest for ICPC Asia Shanghai 2019 - B. Light bulbs(差分 + 思维)
题目链接:https://nanti.jisuanke.com/t/41399 题意:一排 N个初始关着的灯泡,M个操作,每个操作使得区间 [L,R] 的状态反转,求最后开着灯泡的数量。 思路:内存只有8192K,考虑差分,但不能直接遍历,考虑到每一个区间只有奇数才会有贡献,而 M 只有1000,直接遍历区间计算贡献即可。 #include <bits/stdc++.h> us...原创 2019-09-16 10:20:30 · 331 阅读 · 0 评论 -
洛谷P3397 地毯(二维差分)
题目链接:https://www.luogu.org/problemnew/show/P3397 思路:使用二维差分通过仅改变四个值,控制整片区域的数值加减。具体看代码解释吧。 #include <bits/stdc++.h> using namespace std; const int N = 1e3+7; int a[N][N]; int main() { int n...原创 2019-02-28 21:54:36 · 588 阅读 · 0 评论 -
牛客寒假算法基础集训营1 - E - 小a的轰炸游戏(二维差分变形)
题目链接:https://ac.nowcoder.com/acm/contest/317/E 思路:传统的二维差分是规则的矩形,而题目给的是菱形,其实思路大致是一样的,只不过多了几个标记。首先将菱形分为两部分标记,对于上半部分在最顶端打上 +1 的标记向左下方传递;在最顶端的右侧一格打上-1的标记,向右下方传递。下半部分同理。 最后统计每一层的贡献(类似一维差分)。为防止越界,可以对所有的操...原创 2019-02-27 21:25:50 · 195 阅读 · 0 评论 -
HDU - 6514 - Monitor(二维差分)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6514 题意:n*m的矩阵,给出p个监控器的监控矩阵范围,q次询问,给出一矩阵,如果能全部监控到输出YES,否则输出NO。 思路:二维差分,但是数据比较大开不了二维数组,可以用vector <vector <int> >,或者对于每一个二维hash成一维,然后求一下前缀和,然...原创 2019-04-22 20:03:50 · 541 阅读 · 5 评论 -
HDU - 4217 - Data Structure?(树状数组 + 二分查下届)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4217 题意:给你n和k,n代表[1,n]的序列,下面k个数字代表拿走第ki小的数字,让你求拿走数字的总和。 思路:树状数组初始化为1,那么树状数组的sum数组一定是有序的,然后我们就可以二分查找第k小,每次操作后要把第k小加上-1也就是去掉这个数字。 #include<cstdio>...原创 2019-04-03 19:40:54 · 189 阅读 · 0 评论 -
HDU1556-Color the ball(树状数组or差分)
Color the ball Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 26805 Accepted Submission(s): 12981 Problem Description N个气球排成一排,从左到右依次...原创 2018-07-22 15:04:54 · 224 阅读 · 0 评论 -
P1972 [SDOI2009--HYSBZ - 1878--HH的项链(离线+树状数组or莫队)
题目描述 HH 有一串由各种漂亮的贝壳组成的项链。HH 相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义。HH 不断地收集新的贝壳,因此,他的项链变得越来越长。有一天,他突然提出了一个问题:某一段贝壳中,包含了多少种不同的贝壳?这个问题很难回答……因为项链实在是太长了。于是,他只好求助睿智的你,来解决这个问题。 输入输出格式 输入格式: 第一行...原创 2018-07-21 17:45:22 · 274 阅读 · 0 评论 -
HDU1166-敌兵布阵(树状数组模板)
敌兵布阵 Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 117041Accepted Submission(s): 49036Problem Description C国的死对头A国这段时间正在进行军事演习,所以C国间谍头...原创 2018-07-20 10:46:11 · 204 阅读 · 0 评论 -
牛客练习赛4 - A - Laptop(二维偏序)
题目链接:https://ac.nowcoder.com/acm/contest/16/A 思路:二维偏序问题,按照第一维排序,再用树状数组处理第二维即可。 #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef unsigned long long ul; typedef pair&...原创 2019-09-25 19:43:49 · 236 阅读 · 0 评论