![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
并查集
zwjdd_qwq
这个作者很懒,什么都没留下…
展开
-
洛谷P3295萌萌哒
#include<iostream> #include<cstdio> #include<cstdlib> #include<algorithm> #include<cmath> #include<cstring> #define mod 1000000007 using namespace std; const int m...原创 2019-07-29 00:23:40 · 201 阅读 · 0 评论 -
洛谷P1155 双栈排序(并查集)
我们开一个两倍并查集如果i和j不在一个栈,那么合并i,j+n和j,i+n; 怎么判断i,j能不能在一个栈呢 如果一个数比后面的一个数小,而且比他后面最小的数要大的话,就一定不能在一个栈 为什么呢,因为是顺序输出,那么如果数x小于数y那么x一定在y之前出栈,但是如果y后面最小的数z比x小,那么z之前x一定不能出栈,就形成了矛盾; 那么判不合法也就简单了起来; 处理完这个之后,我们进行染色操作,对于一...原创 2019-08-17 23:01:30 · 99 阅读 · 0 评论 -
洛谷P2934 [USACO09JAN]安全出行Safe Travel
首先读懂题意,这道题目的意思是 对于每一个点xxx,断去1−>x1->x1−>x最短路径上的最后一条边,求此时的最短路径 感觉一下子除了暴力没有思路 那么我们反向思考一下,一条不在最短路径上的边会有什么贡献呢 我们假设有一颗最短路径树,那么这一条不在最短路径上的边,一定连接了两个不为父子关系的节点 假设有一颗树是这样的 虚线为一条非树边,我们断去u上方的边,就变成...原创 2019-09-04 00:08:07 · 181 阅读 · 0 评论 -
洛谷P4180 【模板】严格次小生成树[BJWC2010]
rt,模板题 思路挺简单,每次找到不在最小生成树的一条边,断开from>tofrom>tofrom>to在树链上不等于该边边权的最大边 更新答案就好了,这里主要是注意一定要不等于该边边权,因为严格次小 是发方法还是倍增,我们的倍增数组维护最大值和次小值就好了 max2[j][i]=max(max2[fa[j][i-1]][i-1],max2[j][i-1]); i...原创 2019-09-13 22:58:03 · 141 阅读 · 0 评论 -
「LLH邀请赛」参观路线
很奇妙的一题,实际上如果你写过类似的题目并不难想 我们考虑裸暴力的写法 从1点开始暴力dfs,暴力判断当前点是否可以走(没有走过或者道路摧毁) 这样你只能拿到低的可怜的暴力分 我们考虑上述写法的问题在什么地方,我们的dfs是这样写的 void dfs(int k){ ...... for(int i=1;i<=n;i++){ if(!used[i]){ used[i]=1; ...原创 2019-09-26 00:16:22 · 155 阅读 · 0 评论 -
「Usaco2008 Open」奶牛邻居
这题的关键在于转化曼哈顿距离为契比雪夫距离 由一个加法变成一个取max 我们重新定义一个坐标为(x,y)(x,y)(x,y)的点的坐标为(x+y,x−y)(x+y,x-y)(x+y,x−y) 这样,两个点的距离就变成了max(x1,−x2,,y1,−y2,)max(x_1^,-x_2^,,y_1^,-y_2^,)max(x1,−x2,,y1,−y2,) 我们使用双指针维护,保证在当前区间内...原创 2019-10-08 20:29:48 · 141 阅读 · 0 评论 -
「Usaco2010 Feb」覆盖牛棚
主要思路,并查集缩点 对于可以合并的栏杆,我们强行合并成一个栏杆 当然要保证最优 然后一点点更新即可 #include<cstdio> #include<algorithm> using namespace std; const int maxn=2e6+3; struct node{int l,r;}p[maxn]; int nex[maxn],pos[maxn],jum...原创 2019-10-08 20:47:42 · 145 阅读 · 0 评论 -
「Usaco2011 Jan」瓶颈
这题,主要是想清楚每个点的过程 对于一个点,他能走完,当且仅当,流向它的权值和小于它流出的权值 那么我们就有了很多时间点 但是如果一个点走完了呢,我们把他缩起来,变成一个新的节点,重新 我们离线一下询问,动态的更新答案即可 #include<iostream> #include<cstdio> #include<cstdlib> #include<cmat...原创 2019-10-08 21:06:33 · 222 阅读 · 0 评论