图论
树,图
Bug原产地
这个作者很懒,什么都没留下…
展开
-
AtCoder 2362
Splatter Painting大致题意:给一个 nnn 个点 mmm 条边的无向图,有 qqq 次操作 第 iii 次操作,给出 v,d,c,v,d,c,v,d,c,把所有到点 vvv 的距离不超过 ddd 的点都染上颜色 ccc 问最后每个点的颜色 n,m,q,c<=100000,d<=10.n, m, q, c <= 100000, d <= 10.n,m,q,c<=100000,d<=10.解题报告:考虑最终颜色显然逆向操作直接上 dfsdfsdfs原创 2020-11-09 20:59:27 · 204 阅读 · 0 评论 -
2015 Multi-University Training Contest 3 Crazy Bobo( 树形最大集合 + 记忆化搜索 + 思维 )
Crazy Bobo大致题意:找出最大的集合满足以下要求:1.1.1. 集合中所有点在原图中是连通图2.2.2. 集合中权值大小相邻的两个点,它们路径上其它点的权值均小于起点权值。解题报告:题意转化为 从权值小的点出发最多能达到的点数??那么我们可以将无向图建成有向图即权值小的指向权值大的。dfs,bfs 都可做代码展示:#include<bits/stdc++.h>#define LL long long#define pii pair<LL,int>原创 2020-11-06 15:41:59 · 91 阅读 · 0 评论 -
Avito Cool Challenge 2018 D Maximum Distance ( 并查集 + MST + 思维 )
Codeforces - Maximum Distance解题报告:1.1.1.路径最大值的最小值很明显MST2.2.2. 如何快速判断 kkk 个点中两两可达的路径最大值呢 ??我们维护 szszsz 数组,表示当前节点中包含多少个 kkk 节点;在维护并查集的过程中考虑当前有效边两点的 szszsz 是否都大于0(即表示该边可用于更新最大值)代码展示:#include<bits/stdc++.h>#define LL long long#define pii pair<原创 2020-11-05 22:29:43 · 81 阅读 · 0 评论 -
「JOISC 2015 Day 4」Inheritance ( 并查集 + 二分 )
「JOISC 2015 Day 4」Inheritance解题报告:建立 k 个并查集维护它的最小生成树将边权从大到小排序再依次枚举每一条边,那如何快速判断它属于哪一并查集呢??你会发现答案就有单调性#include<bits/stdc++.h>#define LL long long#define pii pair<LL,int>#define all(x) x.begin(),x.end()#define wp(x) write(x),putchar('\n')原创 2020-11-05 21:05:23 · 266 阅读 · 0 评论 -
2018 GCPC ( MST + 树上路径 )
Mountaineers解题报告:最大值最小的路径肯定在MST上面,那么我们直接求一个MST然后就是任意两点之间的树上路径最小值即可。树上倍增即可。但是要注意同一个点的情况。#include<bits/stdc++.h>#define LL long long#define pii pair<LL,int>#define all(x) x.begin(),x.end()#define wp(x) write(x),putchar('\n')#define wpl(原创 2020-11-05 16:09:23 · 182 阅读 · 0 评论 -
点权和 (思维+树形结构+倍增)
题目链接解题报告:代码展示:#include<bits/stdc++.h>#define LL long long#define pii pair<int,int>#define all(x) x.begin(),x.end()#define mem(a,b) memset(a,b,sizeof(a))using namespace std;const int maxn=1e6+5;const int MOD=19260817;inline int read原创 2020-10-06 17:14:38 · 173 阅读 · 0 评论 -
最长树链 ( dfs + 质因数分解 )
题目链接解题报告:我们不妨枚举最长树链 gcdgcdgcd , 那么该条树链上所有的点的权值可表示成 k∗gcdk*gcdk∗gcd 同样也可表示成 k∗gcd′(gcdk*gcd'(gcdk∗gcd′(gcd%gcd′==0)gcd'==0)gcd′==0) ,因此我们可以用质因子对这些点分类。对属于同一类质因子的点跑最长链,不断更新最长链即可。 每个点被访问的次数就是其质因子种类数。代码展示:#include<bits/stdc++.h>#define LL long long原创 2020-09-24 20:15:49 · 326 阅读 · 2 评论 -
分组 ( dfs + 思维 )
题目链接解题报告:将认识关系转化为图中的边。dfs这张图,对每一个没有被访问过的点,将它标记为源点的反色,回溯的时候统计每个点有多少同色相邻点,个数等于2时将其颜色转换。#include<bits/stdc++.h>#define LL long long#define pii pair<LL,LL>#define mem(a,b) memset(a,b,sizeof(a))using namespace std;const int maxn=2e5+5;cons原创 2020-06-17 11:38:22 · 239 阅读 · 0 评论 -
Codeforces Round #646 (Div. 2) E ( dfs +思维)
题目链接解题报告:#include <bits/stdc++.h>#define ll long long#define f first#define s second#define pii pair<int,int>#define mem(a,b) memset(a,b,sizeof(a))using namespace std;const int maxn=2e5+10;const ll MOD=1e9+7;pii p[maxn];struct原创 2020-06-03 10:24:50 · 95 阅读 · 0 评论 -
树上最长链 (树形dp 或 两次dfs )
带权树上最长链 (可能负权 )最长链:(树上直径,树上两点距离最大值,树上距离最远的两点 )。最长链 = 以某一结点为端点的最长链+次长链。mx1: 以 i 节点为根的子树中,i 节点到叶子节点的最长距离(不含 i 节点)即最长链mx2: 以 i 节点为根的子树中,i 节点到叶子节点的次长距离(不含 i 节点)即次长链#define first f#define second s#define ll long long#define pb push_back#define pii pair原创 2020-05-30 12:04:21 · 1044 阅读 · 0 评论 -
牛客小白月赛25 C-白魔法师 ( 图论 + 并查集 )
题目链接解题报告:思路:如果将一个黑色点染成白色,那么将得到一个白色连通块,这个连通块由和这个黑色点连结的所有白色连通块组成。如果将一个白色点染成白色,那么不会有任何变化。所以我们可以先并查集预处理一下,把所有白色连通块的大小求出来,并把所有白色点对应的连通块表示一下。连通块的大小可以dfs或者统计并查集根的孩子总数得出。然后统计所有黑色点的邻点连通块大小即可。要注意特判全部是白色点的情况#define first f#define second s#define ll long long原创 2020-05-20 17:40:24 · 285 阅读 · 0 评论 -
牛客算法周周练2 D小H和游戏 ( 树形结构 )
题目链接解题报告:对于被轰炸城市而言,它的孩子,孩子的孩子,父亲的父亲,父亲及父亲的孩子均受到了影响,暴力更改显然不行,不妨用标记更新,详细见代码。#define first f#define second s#define ll long long#define mp make_pair#define pb push_back#define pf push_front#def...原创 2020-04-15 14:53:05 · 241 阅读 · 0 评论 -
Codeforces Round #633 (Div. 2) D. Edge Weight Assignment
题目链接大致题意:大致意思就是给一颗树,让你构造边权,使得所有叶子节点两两间的距离(“距离”定义为u,v之间边权的异或和)为0。问,所用不同权值个数的最大与最小值。边权的取值范围是[1,+∞]。解题报告:最小值处理:很明显如果任意两个叶子节点间的距离都为偶数那么仅需1种数即可。那么对于距离奇偶同存的话最少需要3种。要满足a^b^c=0的话,a≠b≠c。最大值处理:对于含有叶子...原创 2020-04-14 15:17:56 · 162 阅读 · 0 评论 -
Appeal to the Audience ( 长链剖分 + STL + 贡献 )
题目链接大致题意: <自己口述不行转翻译吧>您是即将举行的Bordfite Arena竞赛比赛的总监。您已经邀请了一堆球员,现在正在为淘汰赛设置比赛,这将确定获胜者。如您所知,BordfiteArena是一款奖励技能的游戏,很少涉及运气。这意味着无论何时有任意数量的玩家玩ordfite竞技场的游戏,最熟练的玩家将永远获胜!因此已经知道了比赛的获胜者,您对此有些担心,您将如何安抚观众...原创 2020-04-01 11:41:32 · 305 阅读 · 0 评论 -
树上求和 ( 思维 + dfs + 树链计数)
题目链接解题报告:#define first f#define second s#define ll long long#define mp make_pair#define pb push_back#define pf push_front#define lb lower_bound#define ub upper_bound#include <bits/stdc++...原创 2020-03-24 11:38:42 · 237 阅读 · 0 评论 -
树 ( 树形结构 + 数学 )
题目链接解题报告:转载自:大佬博客#define first f#define second s#define ll long long#define mp make_pair#define pb push_back#define pf push_front#define lb lower_bound#define ub upper_bound#include <bi...转载 2020-03-26 10:14:02 · 603 阅读 · 0 评论