离线算法
青烟绕指柔!
我不怕千万人阻挡,只怕自己投降。
展开
-
Codeforces - Information Graph
题目链接:Codeforces - Information Graph离线得到树形结构,然后倍增。对于查询,我们只需要知道一个点是否在某条链上。直接用点到端点的距离判断即可。AC代码:#pragma GCC optimize("-Ofast","-funroll-all-loops")#include<bits/stdc++.h>//#define int long longusing namespace std;const int N=1e5+10;int n,m,par原创 2020-08-24 11:08:50 · 177 阅读 · 0 评论 -
HDU - 5200
题目链接:HDU - 5200对询问离线,然后按照顺序加点,维护联通块个数即可。AC代码:#pragma GCC optimize("-Ofast","-funroll-all-loops")#include<bits/stdc++.h>//#define int long longusing namespace std;const int N=5e4+10;int n,m,f[N],res[N],vis[N],ans;struct node{int id,x,f;}t[N原创 2020-08-15 22:29:04 · 169 阅读 · 0 评论 -
HDU - 5441
题目链接:HDU - 5441显然可以按照边权离线,然后用并查集维护联通块的size即可。AC代码:#pragma GCC optimize("-Ofast","-funroll-all-loops")#include<bits/stdc++.h>//#define int long longusing namespace std;const int N=1e5+10;int n,m,Q,f[N],sz[N],res[N],now;struct node{int u,v,w原创 2020-08-11 21:38:03 · 170 阅读 · 0 评论 -
[USACO18FEB]Snow Boots G
题目链接:[USACO18FEB]Snow Boots G由于询问具有单调性,所以我们可以想到离线来做。把能走的点当成0,不能走的点当成1,如果最长连续1大于当前最多能走的步数就不合法。所以我们可以用线段树维护,或者并查集维护。AC代码:#pragma GCC optimize("-Ofast","-funroll-all-loops")#include<bits/stdc++.h>//#define int long longusing namespace std;con原创 2020-05-27 13:08:52 · 248 阅读 · 0 评论 -
Interplanetary
题目链接:Interplanetary显然询问具有单调性,所以我们可以离线来做。把点的温度排序。然后就变成每次增加一个点,然后快速更新任意两点之间的最短路,因为n很小,所以直接floyd即可。AC代码:#pragma GCC optimize("-Ofast","-funroll-all-loops")#include<bits/stdc++.h>//#define int long longusing namespace std;const int N=410,M=1e5原创 2020-05-22 14:23:42 · 270 阅读 · 0 评论 -
Codeforces - Closest Equals
题目链接:Codeforces - Closest Equals显然可以离线。然后对每一个询问,我们按照右端点排序,之后只考虑左端点就行了,所以我们对每一对满足的,我们就修改左边的哪个值即可。然后就变成了区间min,线段树即可。AC代码:#pragma GCC optimize("-Ofast","-funroll-all-loops")#include<bits/stdc++.h>//#define int long longusing namespace std;con原创 2020-05-21 17:14:46 · 274 阅读 · 0 评论 -
[GZOI2017]配对统计
题目链接:[GZOI2017]配对统计其实我们把绝对值当成坐标轴的距离,就可以发现其实就是最近点对的个数。然后排序之后,每个找最近的对。然后离线求解。AC代码:#pragma GCC optimize("-Ofast","-funroll-all-loops")#include<bits/stdc++.h>//#define int long longusing n...原创 2020-04-05 12:31:00 · 319 阅读 · 0 评论 -
Codeforces - Tree and Queries
题目链接:Codeforces - Tree and Queries子树问题,我们可以考虑dfs序。然后发现区间之间可以O(1)更新答案,所以直接莫队即可。AC代码:#pragma GCC optimize("-Ofast","-funroll-all-loops")#include<bits/stdc++.h>//#define int long longusing...原创 2020-02-29 18:57:43 · 246 阅读 · 0 评论 -
Codeforces - Vasya and a Tree
题目链接:Codeforces - Vasya and a Tree如果是简单的子树加减,那么直接dfs序+Fenwick就可以解决。现在,子树加上了一个深度的限制。我们似乎可以从上到下,用主席树合并答案。实际上也是可以的。但是我们有一个简单的做法,就是利用dfs,每次进入子树的时候维护Fenwick,出子树的时候清除影响,就利用小空间达到和主席树一样的效果了。AC代码:#pragm...原创 2020-02-29 13:26:09 · 201 阅读 · 0 评论 -
Codeforces - Ivan and Burgers
题目链接:Codeforces - Ivan and Burgers读题之后发现,比较显然的做法就是线段树维护线性基。(不过复杂度过高,一直没卡过去)。我们可以尝试离线的做法、先按照右端点排序。一次插入线性基当中,怎么保证当前对答案异或的时候,这个基底是存在于[l,r]当中的呢?我们每次插入线性基的时候记录一个时间戳即可。如果当前的时间戳大于等于L,就可以异或。因为我们是从前往后面扫,所...原创 2020-02-21 12:43:05 · 167 阅读 · 0 评论 -
Codeforces - Mishka and Interesting sum
题目链接:Codeforces - Mishka and Interesting sum显然这个东西用莫队很好维护,但是复杂度很难卡常过去。我们考虑答案实际是什么?区间异或和 异或上 区间出现不同数字的异或和 。因为区间异或和异或出来的都是奇数的贡献,然后再异或,就把奇数异或掉了。区间异或和,直接前缀和就可以完成。区间出现不同数字的异或和,我们可以用fenwick维护前缀异或和。A...原创 2020-02-03 19:19:10 · 155 阅读 · 0 评论 -
Codeforces Round602 - Optimal Subsequences
This is the harder version of the problem. In this version, 1≤n,m≤2⋅105. You can hack this problem if you locked it. But you can hack the previous problem only if you locked both problems.You are giv...原创 2019-11-25 00:52:00 · 256 阅读 · 0 评论 -
[CQOI2018]异或序列
题目链接:[CQOI2018]异或序列我们将序列前缀异或和处理一下就不难看出,直接莫队维护即可。但是add和del函数要注意一些细节,add:我们应该先计算贡献,再++,防止k=0del:我们应该先–,再减去贡献,防止k=0还需要注意,我们查询[l,r],但是前缀异或和预处理之后,就变成[l-1,r]了。AC代码:#pragma GCC optimize(2)#include&...原创 2019-11-20 21:32:25 · 189 阅读 · 0 评论 -
51Nod 1463
给定:两个长度为n的数列A 、B一个有m个元素的集合K询问Q次每次询问[l,r],输出区间内满足|Bi-Bj|∈K 的最大Ai+Aj数据约定:n,Q<=100000m <= 100<=A[i]<=10000000001<=B[i]<=n1<=K[i]<=n保证B[i]互不相等输入n Q mA1 A2 …AnB1 B2 …...原创 2019-11-18 11:18:46 · 196 阅读 · 0 评论 -
[HEOI2012]采花
题目描述萧薰儿是古国的公主,平时的一大爱好是采花。今天天气晴朗,阳光明媚,公主清晨便去了皇宫中新建的花园采花。花园足够大,容纳了n朵花,花有c种颜色(用整数1-c表示),且花是排成一排的,以便于公主采花。公主每次采花后会统计采到的花的颜色数,颜色数越多她会越高兴!同时,她有一癖好,她不允许最后自己采到的花中,某一颜色的花只有一朵。为此,公主每采一朵花,要么此前已采到此颜色的花,要么有相当正确...原创 2019-11-15 00:44:22 · 536 阅读 · 0 评论 -
bzoj 3289 - Mato的文件管理
3289: Mato的文件管理Time Limit: 40 Sec Memory Limit: 128 MBSubmit: 5104 Solved: 2131[Submit][Status][Discuss]DescriptionMato同学从各路神犇以各种方式(你们懂的)收集了许多资料,这些资料一共有n份,每份有一个大小和一个编号。为了防止他人偷拷,这些资料都是加密过的,只能用M...原创 2019-11-05 00:39:02 · 162 阅读 · 0 评论 -
老瞎眼 pk 小鲜肉
题目描述老瞎眼有一个长度为 n 的数组 a,为了为难小鲜肉,他准备了 Q 次询问,每次给出 一个区间[L,R],他让小鲜肉寻 找一对 l,r 使L<=l<=r<=R 且 a[l]a[l+1]a[l+2]…^a[r]=0,老瞎眼只让他回答r-l+1 最小是多少,若没有符合条件的 l,r 输出”-1”。输入描述:第一行输入 n,Q。第二行输入 n 个数,表示 a 数组。接下...原创 2019-10-12 12:33:58 · 230 阅读 · 0 评论 -
小B的询问
题目描述小B有一个序列,包含N个1~K之间的整数。他一共有M个询问,每个询问给定一个区间[L…R],求Sigma(c(i)^2)的值,其中i的值从1到K,其中c(i)表示数字i在[L…R]中的重复次数。小B请你帮助他回答询问。输入格式第一行,三个整数N、M、K。第二行,N个整数,表示小B的序列。接下来的M行,每行两个整数L、R。输出格式M行,每行一个整数,其中第i行的整数表示第i个询...原创 2019-09-02 18:01:37 · 181 阅读 · 0 评论 -
Rmq Problem / mex
题目描述有一个长度为n的数组{a1,a2,…,an}。m次询问,每次询问一个区间内最小没有出现过的自然数。输入格式第一行n,m。第二行为n个数。从第三行开始,每行一个询问l,r。输出格式一行一个数,表示每个询问的答案。输入输出样例输入 #1 复制5 52 1 0 2 13 32 32 41 23 5输出 #1 复制12303说明/提示对于30%的数据...原创 2019-09-02 19:40:42 · 732 阅读 · 0 评论 -
HDU - 4638 Group(经典莫队 - 求区间连续数字集的个数)
GroupTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4580 Accepted Submission(s): 2095Problem DescriptionThere are n men ,every man has a...原创 2019-09-03 00:28:07 · 320 阅读 · 0 评论 -
大爷的字符串题
题目背景在那遥远的西南有一所学校/被和谐部分/然后去参加该省省选虐场然后某蒟蒻不会做,所以也出了一个字符串题:题目描述给你一个字符串a,每次询问一段区间的贡献贡献定义:每次从这个区间中随机拿出一个字符x,然后把x从这个区间中删除,你要维护一个集合S如果S为空,你rp减1如果S中有一个元素不小于x,则你rp减1,清空S之后将x插入S由于你是大爷,平时做过的题考试都会考到,所以...原创 2019-09-03 19:42:41 · 237 阅读 · 0 评论 -
[国家集训队]小Z的袜子
题目描述作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿。终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命……具体来说,小Z把这N只袜子从1到N编号,然后从编号L到R(L 尽管小Z并不在意两只袜子是不是完整的一双,甚至不在意两只袜子是否一左一右,他却很在意袜子的颜色,毕竟穿两只不同色的袜子会很尴尬。你的任务便是告诉小Z,他有多大的概率抽到两只...原创 2019-09-03 19:54:53 · 173 阅读 · 0 评论 -
2019徐州网络赛 - query
题目链接:query题目大意:就是有m次询问,每次问一个区间当中满足 gcd(i,j) = min(i,j) 的有多少对。当时比赛的时候,一直给我感觉就是莫队,但是一直没有维护出来。其实满足这个条件,就是相当于 i , j 有一个倍数关系。而且又是一个全排列,所以满足这个关系的并不多,最多 n log(n) 个,于是我们就可以把所有这样的关系都预处理出来。我们对询问按照 r 排序,然后我...原创 2019-09-10 13:05:11 · 199 阅读 · 0 评论 -
区间求和
题目链接: - 题 - 目 -一看到题目然后就想到了线段树,但是想了一会,没想到怎么维护。然后突然一看,诶,这不是莫队的板子题嘛,然后写就A了对于当前这种大小相等的数字的贡献为: ai * cnt *cnt ,仔细推一下即可发现。然后就相当于莫队维护区间平方和了,但是我们再乘上 ai。AC代码:#pragma GCC optimize(2)#include<bits/s...原创 2019-09-13 20:48:21 · 345 阅读 · 0 评论 -
codeforces - B. Little Elephant and Array
B. Little Elephant and Arraytime limit per test4 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputThe Little Elephant loves playing with arrays. He has array a, co...原创 2019-09-16 19:23:32 · 245 阅读 · 0 评论 -
codeforces - E. XOR and Favorite Number
E. XOR and Favorite Numbertime limit per test4 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputBob has a favorite number k and ai of length n. Now he asks you to ...原创 2019-09-16 21:10:30 · 255 阅读 · 0 评论 -
bzoj 3262: 陌上花开
3262: 陌上花开Time Limit: 20 Sec Memory Limit: 256 MBSubmit: 5800 Solved: 2804[Submit][Status][Discuss]Description有n朵花,每朵花有三个属性:花形(s)、颜色©、气味(m),用三个整数表示。现在要对每朵花评级,一朵花的级别是它拥有的美丽能超过的花的数量。定义一朵花A比另一朵花...原创 2019-09-18 17:20:44 · 180 阅读 · 0 评论 -
[BOI2007]Mokia 摩基亚
题目描述摩尔瓦多的移动电话公司摩基亚(Mokia)设计出了一种新的用户定位系统。和其他的定位系统一样,它能够迅速回答任何形如“用户C的位置在哪?”的问题,精确到毫米。但其真正高科技之处在于,它能够回答形如“给定区域内有多少名用户?”的问题。在定位系统中,世界被认为是一个W×W的正方形区域,由1×1的方格组成。每个方格都有一个坐标(x,y),1<=x,y<=W。坐标的编号从1开始。对...原创 2019-09-18 19:58:17 · 254 阅读 · 2 评论 -
[SDOI2009]HH的项链
题目描述HH 有一串由各种漂亮的贝壳组成的项链。HH 相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义。HH 不断地收集新的贝壳,因此,他的项链变得越来越长。有一天,他突然提出了一个问题:某一段贝壳中,包含了多少种不同的贝壳?这个问题很难回答……因为项链实在是太长了。于是,他只好求助睿智的你,来解决这个问题。输入格式第一行:一个整数N,表示项链的长度。...原创 2019-08-21 09:12:57 · 154 阅读 · 0 评论