随笔分类 -  数据结构--树状数组

摘要:"传送门" 解题思路 首先分块预处理,设$sum[i][j]$为第$i$块到第$j$块的逆序对数量,$g[i][j]$表示前$i$块数值$ include include include include using namespace std; const int N=50005; const in 阅读全文
posted @ 2019-02-12 19:55 Monster_Qi 阅读(188) 评论(0) 推荐(0)
摘要:"传送门" 解题思路 首先一定不可能有$ 1$的情况,因为新产生的黑点不会造成任何贡献,它的各个方面都是不优的。那么只需要统计一遍答案,首先要将横坐标相同的两个点看成一条竖线,纵坐标相同的点看成一条横线,然后从下往上扫描,遇到竖线的下端点时,在树状数组里$+1$,遇到竖线上端点时,$ 1$,然后遇到 阅读全文
posted @ 2019-02-01 11:22 Monster_Qi 阅读(208) 评论(0) 推荐(0)
摘要:"传送门" 解题思路 莫队+树状数组。把求$[a,b]$搞成前缀和形式,剩下的比较裸吧,用$cnt$记一下数字出现次数。时间复杂度$O(msqrt(n)log(n)$,莫名其妙过了。 代码 cpp include include include include include using names 阅读全文
posted @ 2018-12-20 10:55 Monster_Qi 阅读(246) 评论(0) 推荐(0)
摘要:题目描述 给你一棵TREE,以及这棵树上边的距离.问有多少对点它们两者间的距离小于等于K 输入输出格式 输入格式: N(n<=40000) 接下来n-1行边描述管道,按照题目中写的输入 接下来是k 输出格式: 一行,有多少对点之间的距离小于等于k 输入输出样例 输入样例#1: 7 1 6 13 6 阅读全文
posted @ 2018-08-14 19:40 Monster_Qi 阅读(118) 评论(0) 推荐(0)
摘要:Time Limit: 20 Sec Memory Limit: 64 MB Submit: 2244 Solved: 1144 [Submit][Status][Discuss] DescriptionHH有个一成不变的习惯,喜欢饭后百步走。所谓百步走... 阅读全文
posted @ 2018-07-27 17:37 Monster_Qi 阅读(108) 评论(0) 推荐(0)
摘要:题目描述猫猫TOM和小老鼠JERRY最近又较量上了,但是毕竟都是成年人,他们已经不喜欢再玩那种你追我赶的游戏,现在他们喜欢玩统计。最近,TOM老猫查阅到一个人类称之为“逆序对”的东西,这东西是这样定义的:对于给定的一段正整数序列,逆序对就是序列中ai>aj且... 阅读全文
posted @ 2018-07-22 18:52 Monster_Qi 阅读(114) 评论(0) 推荐(0)
摘要:1、单点修改+区间查询。#includeusing namespace std;const int MAXN = 500005;int n,m,a[MAXN],f[MAXN];inline void add(int x,int y){ //单点修改。 ... 阅读全文
posted @ 2018-05-22 23:28 Monster_Qi 阅读(142) 评论(0) 推荐(0)
摘要:第一类:题目描述如题,已知一个数列,你需要进行下面两种操作:1.将某一个数加上x2.求出某区间每一个数的和 输入输出格式 输入格式:第一行包含两个整数N、M,分别表示该数列数字的个数和操作的总个数。第二行包含N个用空格分隔的整数,其中第i个数字表示数列第i项... 阅读全文
posted @ 2018-02-10 17:39 Monster_Qi 阅读(155) 评论(0) 推荐(0)