图论
文章平均质量分 94
最短路径、二分图等等
_lanChe
这个作者很懒,什么都没留下…
展开
-
2-SAT专栏
2-SAT很多时候的应用场景是,给定一个事物,这个事物有两种状态选择。基本就是这个情况,详细的话,通过下面的样例与题集来进行更深入的理解。 样例: Party-HDU 3062 Katu Puzzle-POJ 3678 实战: Get Luffy Out *-HDU1816 Go Deeper-HDU 3715 中等题: Eliminate the Conflict-HDU 4115 Bit Magic-HDU 4421 Party-HDU 3062 传送门 这道题有两种矛盾关系: 一对夫妻中只能一原创 2021-02-01 16:41:18 · 121 阅读 · 0 评论 -
差分约束专题
关于差分约束的相关定义,这篇博客推荐看一下 何为差分约束 接下来通过些题目来实战一下 layout layout poj-3169 这题有两个不等式要求: 对于ML个关系,有 SB−SA≤wS_B-S_A\le wSB−SA≤w 对于MD个关系,有SB−SA≥wS_B-S_A\ge wSB−SA≥w 其中 SiS_iSi 表示 iii 到原点的距离。由于题目还有另外两种情况, 无解则输出-1,无解便是跑spfa出现负圈的情况 无穷大则输出-2,便是通过以上关系并不能更新到第n个点,则说明第n点原创 2021-01-27 18:18:50 · 136 阅读 · 0 评论 -
The 11th Zhejiang Provincial Collegiate Programming Contest
A.Pokemon Master 传送门 #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef unsigned long long ull; typedef pair<int, int> pii; template <typename T> inline void rd(T& x) { ll tmp = 1; char c = getchar(); x = 0;原创 2020-10-13 10:23:18 · 232 阅读 · 0 评论 -
Paint the Grid Reloaded (将联通块缩点+BFS)
传送门 题意 能够上下左右相通的并且颜色相同的块为一个整体,就是所谓的联通块。然后每次对联通块进行反转颜色操作,最后要求最小的步数使得图中所有的颜色相同。 思路 将所有能够相通的相同颜色进行缩点,形成联通块 然后能够上下左右连通的联通块进行建边 最后枚举所有的联通块,进行 bfsbfsbfs 标记操作,将所有的答案取最小值,就是最终答案 #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef un原创 2020-10-09 19:54:00 · 141 阅读 · 0 评论 -
Deliver the Cake (拆点 dijkstra)
传送门 这道题主要是建边麻烦,而稍微省点麻烦的就是拆点进行建边了,将所有 MMM 的点拆成左跟右,按部就班按照题目意思进行建边 #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef unsigned long long ull; template <typename T> inline void read(T &x) { int tmp = 1;char c = getc原创 2020-10-09 08:59:36 · 196 阅读 · 0 评论 -
Environment-Friendly Travel ( 二维dijkstra)
传送门 这道题题意就不说了,主要是有一个二维数组进行 visvisvis 标记,因为该段路程的长度上限 BBB 仅仅只是100,所以完全可以用数组标记 dijkstradijkstradijkstra 的优先队列排序是先二氧化碳排放量,再进行长度,vis[point][length]vis[point][length]vis[point][length] 表示在点 vvv 长度为 lenlenlen 的已经访问过了,直接跳过这个情况,剩下的就按部就班的 dijkstradijkstradijkstra #原创 2020-10-09 08:55:08 · 378 阅读 · 0 评论 -
Free restricted flights (拆边建图)
传送门 这道题讲的是两个人去旅行,然后他们会在一个地方(不是两者的起点)碰头,并且最后还要回到各自的起点,然后有 kkk 张免费的机票,求总的价值以及他们可能会碰头的其中一个点。 由于有 kkk 张免费的机票,并且难以模拟在哪一趟兑换这张免费机票,所以采用拆边的做法,将一段路拆分成 k+1k+1k+1 段,第一段表示需要付费的票,后面分别表示使用第一张免费票的路线,第二张…第 kkk 张 这里后面回到起点的做法,直接在原来给出的建图的基础上建立反边即可,便把起点当作源点,按部就班的跑一遍 dijkstrad原创 2020-10-09 08:47:27 · 103 阅读 · 0 评论 -
最短路-HZNUoj-2798 (使用线段树来进行区间压缩)
Description ZC 家所在的小区住着很多学妹,为了方便和学妹们联络感情,ZC 大佬决定在原有的道路上,再建一些道路。由于ZC 太强了,它可以搭建以下两种道路: 111 uuu LLL RRR www:对于区间 L,R 中的每一个位置 i,搭建一条 u−>iu -> iu−>i 的长度为 w 道路。 222 LLL RRR uuu www:对于区间 L,R 中的每一个位置 i,搭建一条 i−>ui -> ui−>u 的长度为 w 道路。 已知 ZC 的家在 1 号原创 2020-08-10 15:29:01 · 183 阅读 · 0 评论