![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论
文章平均质量分 94
最短路径、二分图等等
_lanChe
这个作者很懒,什么都没留下…
展开
-
2-SAT专栏
2-SAT很多时候的应用场景是,给定一个事物,这个事物有两种状态选择。基本就是这个情况,详细的话,通过下面的样例与题集来进行更深入的理解。样例:Party-HDU 3062Katu Puzzle-POJ 3678实战:Get Luffy Out *-HDU1816 Go Deeper-HDU 3715中等题:Eliminate the Conflict-HDU 4115Bit Magic-HDU 4421Party-HDU 3062传送门这道题有两种矛盾关系:一对夫妻中只能一原创 2021-02-01 16:41:18 · 111 阅读 · 0 评论 -
差分约束专题
关于差分约束的相关定义,这篇博客推荐看一下 何为差分约束接下来通过些题目来实战一下layoutlayout 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 · 125 阅读 · 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 · 221 阅读 · 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 · 132 阅读 · 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 · 188 阅读 · 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 · 373 阅读 · 0 评论 -
Free restricted flights (拆边建图)
传送门这道题讲的是两个人去旅行,然后他们会在一个地方(不是两者的起点)碰头,并且最后还要回到各自的起点,然后有 kkk 张免费的机票,求总的价值以及他们可能会碰头的其中一个点。由于有 kkk 张免费的机票,并且难以模拟在哪一趟兑换这张免费机票,所以采用拆边的做法,将一段路拆分成 k+1k+1k+1 段,第一段表示需要付费的票,后面分别表示使用第一张免费票的路线,第二张…第 kkk 张这里后面回到起点的做法,直接在原来给出的建图的基础上建立反边即可,便把起点当作源点,按部就班的跑一遍 dijkstrad原创 2020-10-09 08:47:27 · 99 阅读 · 0 评论 -
最短路-HZNUoj-2798 (使用线段树来进行区间压缩)
DescriptionZC 家所在的小区住着很多学妹,为了方便和学妹们联络感情,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 · 175 阅读 · 0 评论