![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
莫队算法
文章平均质量分 74
霜刃未曾试
这个作者很懒,什么都没留下…
展开
-
UVALive 3662 Another Minimum Spanning Tree 曼哈顿最小距离生成树
题目:http://acm.hust.edu.cn/vjudge/problem/23379题意:平面上有n个点,求这些点的曼哈顿最小距离生成树。#include #include #include #include #include #include using namespace std;typedef long long ll;const int N = 10001原创 2016-08-15 16:34:07 · 495 阅读 · 0 评论 -
CodeForces 375D Tree and Queries 莫队算法
题目:http://codeforces.com/problemset/problem/375/D题意:给定一个以1为根的树,树中每个节点有一个颜色,求以某个节点v为根的子树中颜色出现次数大于等于k的颜色有几种思路:dfs序分块,然后莫队乱搞,统计每种颜色的次数,用树状数组维护次数的前缀和,查询大于等于k次的颜色便是sum(n) - sum(k-1)#include #include原创 2016-09-22 14:34:03 · 740 阅读 · 0 评论 -
HDU 4358 Boring counting 莫队算法
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4358题意:给定一个以1为根的树,树上每个节点都有权值,然后问以某点v为根的子树中有多少个出现次数等于k的权值思路:首先权值要离散化,对于树结构,用dfs序转换成线性结构,即以v为根的子树线性区间为[in[v], out[v]],这样就可以用莫队算法乱搞了#include #include原创 2016-09-22 10:58:52 · 801 阅读 · 0 评论 -
CodeForces 86D Powerful array 莫队算法
题目:http://codeforces.com/problemset/problem/86/D题意:给定一个数组,每次询问一个区间[l, r],设某个元素i出现的次数为num[i],求区间内元素num[i] ^ 2 * i的和思路:莫队算法简单题,元素范围为[1, 1000000],要离散化一下, 不然会超时。。。#include #include #include #incl原创 2016-09-20 19:13:25 · 662 阅读 · 1 评论 -
HDU 5381 The sum of gcd 莫队算法
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5381题意:给定一个数组,每次询问给出l和r,求出 思路:看的大牛的代码,心累#include #include #include #include #include #include #define debug() puts("here")using namespace std;原创 2016-09-23 17:48:27 · 767 阅读 · 0 评论 -
CSU 1515 Sequence 莫队算法
题目:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1515题意:给定一个数组,每次询问一个区间,问区间中|a[i] - a[j]| == 1的组合有多少个。思路:莫队算法。每当增加一个元素时就往答案中加上它左右临近元素的个数,减少一个元素就在答案中减去它左右临近元素的个数,思路很简单,但本题中数据范围较大,需要离散化,但是离散化之后|a原创 2016-09-20 10:33:08 · 397 阅读 · 0 评论 -
NBUT 1457 Sona 莫队算法
题目:https://ac.2333.moe/Problem/view.xhtml?id=1457题意:给定一个数组,然后给出一些询问区间,求区间内每个数出现次数的立方和思路:莫队算法模板题。注意要离散化数据#include #include #include #include #include #include using namespace std;typedef原创 2016-08-06 09:24:05 · 390 阅读 · 0 评论 -
BZOJ 2038 小Z的袜子(hose) 莫队算法
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=2038题意:Description作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿。终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命……具体来说,小Z把这N只袜子从1到N编号,然后从编号L到R(L 尽管小Z并不在意两只袜子原创 2016-08-05 23:00:03 · 438 阅读 · 0 评论 -
HDU 3874 Necklace 莫队算法
题目:http://acm.hdu.edu.cn/showproblem.php?pid=3874题意:给定一个数组,每次询问一个区间[l, r],求区间内所有数字的和,出现多次的数字只加一次思路:莫队算法扫一遍即可,注意会爆int。我数组开小了不少RE而是TLE,蛋疼。。。#include #include #include #include #include #inclu原创 2016-09-19 14:24:43 · 771 阅读 · 0 评论 -
HDU 4638 Group 莫队算法
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4638题意:给定一个长度为n的数组,数组中元素为1~n,每次询问一个区间[l, r],求这个区间内可以划分成多少个元素连续的序列思路:莫队算法。增加一个元素时,如果它左边和右边的元素都已经存在,那么添加当前元素会把两个连续序列合并为1个,所以计数-1,若是都不存在,说明增加了一个只有一个元素的连续序原创 2016-09-19 13:47:51 · 374 阅读 · 0 评论 -
CodeForces 220B Little Elephant and Array 莫队算法
题目:http://codeforces.com/problemset/problem/220/B题意:给定一个数组,每次询问一个区间[l, r],问这个区间内元素出现个数等于元素本身的出现了几次思路:莫队算法很容易搞定,因为元素区间较大所以要离散化,离散化之后元素的值就变了,不能用来判断是不是满足元素出现个数等于元素本书,所以再用一个数组保存初始元素#include #includ原创 2016-09-19 13:19:44 · 706 阅读 · 0 评论 -
POJ 3214 Object Clustering 哈夫曼距离最小生成树
题目:http://poj.org/problem?id=3241题意:平面中给定n个点,任意两点之间的距离为它们的哈夫曼距离,求n个点的最小生成树中的第k大边思路:kuangbin大神的模板,看了好久。。。这个不错:点这里#include #include #include #include #include #include using namespace std;原创 2016-08-13 16:54:38 · 1375 阅读 · 0 评论 -
SPOJ DQUERY D-query 莫队算法
题目:http://www.spoj.com/problems/DQUERY/en/题意:给定一个数组,每次询问一个区间内有多少不同的元素思路:莫队算法裸题#include #include #include #include #include using namespace std;const int N = 30010;struct node{ int l原创 2016-09-03 11:27:15 · 1239 阅读 · 0 评论 -
SPOJ COT2 Count on a tree II 树上莫队
题目:http://www.spoj.com/problems/COT2/en/题意:给定一棵树n个点,树上每个点都有一个权值。有m组查询,每个查询给出两个点,问这两点之间的路径上有多少种不同的权值思路:树上莫队啊。有两种写法#include #include #include #include #include using namespace std;typedef l原创 2016-08-30 20:28:53 · 1194 阅读 · 0 评论 -
BZOJ 3289 Mato的文件管理 莫队算法+树状数组
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=3289题意:escriptionMato同学从各路神犇以各种方式(你们懂的)收集了许多资料,这些资料一共有n份,每份有一个大小和一个编号。为了防止他人偷拷,这些资料都是加密过的,只能用Mato自己写的程序才能访问。Mato每天随机选一个区间[l,r],他今天就看编号在此区间内原创 2016-08-15 18:56:04 · 311 阅读 · 0 评论 -
UVA 12345 Dynamic len(set(a[L:R])) 分块或带修改莫队
题目:https://vjudge.net/problem/UVA-12345题意:给出一个有n个元素的数组,有以下两种操作:Q x y,求出区间[x,y)内不同元素的个数,M x y,把第x个元素的值修改为y。注意题目中的下标是从0开始的思路:我写了分块和带修改莫队两种做法。首先讲分块法,对于每个位置i,我们记录前一个相同元素的坐标,记为pre[i],然后分块,块内按pre数组排序,等到查询的时候原创 2017-06-06 11:57:19 · 1383 阅读 · 0 评论