![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM 数据结构
15zhazhahe
打杂小能手/吃/喝/睡/胖/菜/
展开
-
CodeForces 791B Bear and Friendship Condition【并查集】
题目链接:http://codeforces.com/contest/791/problem/B 题意:给你一个社交网络,问你这个网络是否合法,也就是1认识2,2认识3,1就必须认识3 解析:其实也就给你一个图,如果这个社交网络合法那就是他所有的连通块里的节点个数-1等于连通块里节点的度数#include <cstdio>#include <cstring>#include <algorit原创 2017-03-22 13:13:41 · 422 阅读 · 0 评论 -
poj1611 The Suspects
题目链接:http://poj.org/problem?id=1611 题意:有n个人,总共有m个社团,现在0号病了,如果和0号处于一个社团的就会一起生病,总之在社团之间会相互传染,比如样例1,现在问你有几个人生病了 解析:并查集,对于全部人来做并查集,社团之间相互有连接就加到一个集合里面,最后看0号结点的那个集合有多少个元素即可,记录元素个数,可以开一个son数组,在合并的时候更新一下#inc原创 2017-10-07 10:52:37 · 251 阅读 · 0 评论 -
hdu1213 How Many Tables
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1213 题意:某人生日,要邀请他的朋友来家里,但是他的朋友相互之间不一定全都认识,如果都坐在一张桌子上会很尴尬,所以现在告诉你那些朋友之间是相互认识的,问你最少需要多少张桌子 解析:裸的并查集#include <bits/stdc++.h>using namespace std;con原创 2017-10-07 09:56:29 · 299 阅读 · 0 评论 -
hdu6058 Kanade's sum
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6058 题意:给你一个1~n的全排列,让你求所有区间第k大的求和 解析:这题需要从每位的贡献值来处理,比赛的时候队友用set写,一直超时,觉得可能多了一个log时间复杂度,赛后看题解,发现应该用链表来维护,对于每一位x来说,算他总共在几个区间里是满足第k大的,然后把区间数x,再加到答案上即可,那么对于原创 2017-08-23 22:17:04 · 291 阅读 · 0 评论 -
hdu6040 Hints of sd0061【nth_element使用】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6040 题意:给你一个函数,有一个长度为n的序列是由这个函数生成的,现在给你一个长度为m的序列,然你输出一个长度为m的东西,每一位表示a序列中第b[i]+1小的元素 解析:第一反应肯定是对a排序,但是快排复杂度是nlogn,而n的范围是不允许的,然后发现m又很小,所以从b序列入手,应该是个不错的选择,原创 2017-08-23 14:26:25 · 388 阅读 · 0 评论 -
hdu6109 数据分割【并查集+set】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6109 题意:中文题 解析:由于相等具有传递性,那么可以选择用并查集来维护,即若干个相等的就是一堆,那么对于不等号来说,是无法传递的,于是可以选择用set来维护,比如对于x这个集合来说,里面的所有元素都是与x不等的。这些是对于数据结构的选择,那么有一些要注意的点就是,当你两个相等的元素合并时,其不等的原创 2017-08-20 18:45:48 · 323 阅读 · 0 评论 -
hdu6047 Maximum Sequence【贪心+线段树】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6047 题意:给你一个序列a,和一个序列b,让你构造n(an~an+1)个数出来,使得这n个数的和最大,构造出来的数满足ai<={aj-j | bk<=j#include <iostream>#include <cstdio>#include <cstring>#include <string>原创 2017-07-27 21:11:57 · 326 阅读 · 0 评论 -
CodeForces 835C Star sky
题目链接:http://codeforces.com/contest/835/problem/C 题意:有一片星空这个星空里有n个星星,每个星星的位置为(xi,yi),初始亮度为si,所有星星的最大亮度为c,没过一个时间,亮度加1,达到最大c,就置为0,现在有q次询问,每此询问t时刻,(x1,y1)(x2,y2)范围里所有星星的总亮度 解析:可以直接二维树状数组来做预处理,也可以用类似一个前缀和原创 2017-08-01 22:20:19 · 1024 阅读 · 0 评论 -
CodeForces 754D Fedor and coupons
题目链接:http://codeforces.com/contest/754/problem/D 题意:给你n个优惠券,每个优惠券是一个区间,他能给这个区间的所有商品进行打折,现让你选择k个优惠券,使得能够重复打折的商品最大,让你输出有多少个商品被打折了,并输出你选择的优惠券编号 解析!:其实说白了就是给你n个区间,每个区间会覆盖一个范围,让你选择k个区间,使得你重复覆盖的范围尽可能大,那么我们原创 2017-05-07 12:08:00 · 737 阅读 · 0 评论 -
CodeForces 755C PolandBall and Forest
题目链接:http://codeforces.com/contest/755/problem/C 题意:给你一个长度为n的序列,a[i]表示a[i]与i有条边相连,让你求这个序列构成的森林里有多少棵树 解析!:裸的并查集#include <bits/stdc++.h>using namespace std;const int maxn = 1e5+100;int fa[maxn],a[ma原创 2017-05-06 00:03:07 · 1553 阅读 · 0 评论 -
Gym - 100623A Access Control Lists【map】
题目链接:https://vjudge.net/problem/Gym-100623A 题意:给你n条访问限制情况,有允许一个网段访问的,有允许某一地址访问的,有拒绝某一网段访问,有拒绝某一地址访问,如果前面允许某一个地址访问,而这条拒绝的这个网段包括前面的那一个ip地址,那个ip地址也是允许访问的(就像样例),询问m个ip地址,问你是否能够访问,如果能输出A,如果不能输出D,如果在列表上没有出现原创 2017-03-31 21:39:19 · 483 阅读 · 0 评论 -
poj1182 食物链【带权并查集】
题目链接:http://poj.org/problem?id=1182 题意:中文题 解析:带权并查集,为每个元素创建三个元素,i-A,i-B,i-C,然后维护3*n个元素#include <iostream>#include <cstdio>#include <algorithm>#include <vector>#include <cstring>#include <queue>原创 2017-03-31 12:13:41 · 440 阅读 · 0 评论 -
Gym - 100623B Billboard【线段树】
题目链接:https://vjudge.net/problem/Gym-100623B 题意:有一个h层的柜子,每层只能放重量不超过w的东西,现在给你n个物体,从上往下放,让你输出每一个物体放在第几层,如果放不下就输出-1 解析:一开始我们队的想法是用优先队列找最小值,不过发现当前的最小值不一定是不是层数最小的那个,最后觉得像线段树,也就是区间查询最小值,判断那个区间(1~h)是否能放a[i]上原创 2017-03-31 10:40:36 · 373 阅读 · 0 评论 -
poj1308 Is It A Tree
题目链接:http://poj.org/problem?id=1308 题意:给你一个有向图,问你这是不是一棵树 解析:输入有点坑,他可能没有一条边,其他的你只需要判断一下边数是不是等于点数-1,每个结点的前驱结点是不是只有一个#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>using n原创 2017-10-10 19:29:49 · 260 阅读 · 0 评论