![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论
Forward in time
永不停止前进
展开
-
E. Exits in Excess(图论+思维)
You own a disco called the Boogie Always Persists Club.The club is famous for its multiple interconnected rooms to twist and shout in. The rooms and the corridors between them form a maze-like structu...原创 2020-03-20 21:10:58 · 249 阅读 · 0 评论 -
Is-A? Has-A? Who Knowz-A?(floyd求关系闭包)
这个题我就想说,为什么用一个数组不行呢?看了题解用的两个数组才能过,我很懵比;这道题其实可以用warshall算法求解,但是我到现在也没搞懂为什么用一个数组不能解决?不是一样的求关系闭包吗?难道是对同一种关系只能用1种数组?这道题需要注意的就是必须先求is,因为有了is之后才好判断hasAC代码:#include<bits/stdc++.h>using namespace ...原创 2020-03-01 15:12:48 · 185 阅读 · 0 评论 -
传递闭包(Warshall算法 (中转站))
#include<iostream>using namespace std;int main(){ int a[100][100],n; cin>>n; for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { cin>>a[i][j]; } ...原创 2019-04-04 09:04:42 · 330 阅读 · 0 评论 -
Longest Path(竞赛图+哈密尔顿图+list求路径)
题意:给出一个有向图,这个有向图图的限制条件为任意两点之间只能存在一条有向边,问从任意点出发并且每个点只能走一次,问最长的路径是什么,答案不唯一,输出一个即可;这道题仔细分析题意可以知道,如果把这个有向图的方向去掉,那么这个无向图就是一个完全无向图。如果以前遇见过竞赛图,那么肯定就知道了这就是竞赛图,我也是才知道的,百度了一下竞赛图是什么东西:那么竞赛图就有一个特点:所以就知道了是一个哈...原创 2020-02-28 14:38:56 · 449 阅读 · 0 评论 -
L - Tree(dfs+图论)
题意:给定一个树(连通无回路的无向图);然后给你k,表示一共有k种颜色;并且n个顶点,n-1条边,而且不会有重边;但是这个题最难理解的就是Ei的定义,我当时也读了半天没太看懂啥意思;结果是这个意思:把i颜色的节点连接起来,那么所有使得i颜色的点的可达的边集就是Ei了;比如第一个案例:如果我按照上图进行染色的话,那么连接1颜色的有那么就有这三条边属于集合E1;对于2颜色来说就是:...原创 2019-10-09 21:20:17 · 476 阅读 · 0 评论 -
Fire-Fighting Hero(dijsktra+图论)
这道题主要是理解题意:就是理解这段:最短路径最大值是啥?就是:英雄从S点出发,然后去到其他能到达的点的距离的最小值的最大值;比如:那么就是最短距离最大值就是100,因为需要把S点到其他点的最短距离全部算出来,然后取最大值;这就是最短距离最大值的意思;然后就是后面一句的意思:如果一个点需要 put out那么消防队队员就会出动(在不同的点上),那么这个的最短距离最大值就是:所...原创 2019-09-08 19:01:16 · 220 阅读 · 0 评论 -
Heat Wave(Dijkstra+堆优化+邻接表)
这道题题意很简单,给你C条边+这条边的权值,然后给你Ts起点,Te终点,最后找起点到终点的最短花费,其实就是最短距离;直接写一遍Dijkstra就OK了;刚开始我直接写出dfs去,结果T了,我马上就换Dijkstra了;然后AC的;dfs我发现大数据基本上用它通常会超时,要是以后遇见了最短问题,我还是去搞Dijkstra算了;QAQ;#include<bits/stdc++.h&g...原创 2019-08-30 21:09:19 · 269 阅读 · 0 评论 -
A - Dropping Balls UVA - 679(规律二叉树)
题意:就是给一个深度为D的完全二叉树;然后给I个小球,初始时所有节点为0;如果来了一个小球,那么这个节点先变成1,然后这个球往左孩子走,如果再来一个球,那么这个节点就先变为0,然后往右孩子走;问最后一个小球落到的节点编号;其实这道题我拿着感觉有点懵逼;最简单的想法就是每个节点每个球去枚举一下但是想想时间复杂度ITD,早就超时了;但是我可以发现这个规律:对1号节点,如果I为奇数,说明最后...原创 2019-08-27 12:06:02 · 110 阅读 · 0 评论 -
Dijkstra(堆优化+领结表+优先队列(反序))
#include<bits/stdc++.h>using namespace std;const int INF=0x3f3f3f;struct Node{ int self; int dis; Node(int a,int b):self(a),dis(b){} bool operator<(const Node &a)const{ r...原创 2019-08-26 17:59:03 · 188 阅读 · 0 评论 -
Divide Groups(二分图+dfs+连通块+邻接表)
题意:给你i认识j但是不具有对称性,也就是j不认识i;然后问是否能分为两组,两组中都是认识的人;我头一次写二分图,最原始的二分图是是否相邻的能被两种不同的颜色染色;然后这道题可以这样抽象:把不同的人当做顶点,如果两个人不认识就加边:比如1不认识2,2不认识3,那么:很明显这个图是二分图;因为1号顶点可被染成1的颜色,2号顶点可以被染成-1的颜色,3号顶点可以被染成1颜色;所以这道题就...原创 2019-08-18 16:13:33 · 332 阅读 · 0 评论 -
L - Problem L. Graph Theory Homework(图论+结论)
这道题,榜上有人几秒钟就AC了,我一开始还在想迪杰斯特拉单源路径的算法,然后自己看了看1e5个点,而且还是complete,那肯定TLE了,所以自己不得不放弃这个想法,之后找了一下规律,发现直接从1—n就是最短的路;我相信读到这里你肯定会问,why?我就来说说我自己的想法吧:我们就一点的标记来表示他在这一点的权值吧(其实权值感觉很高大尚,不如就说是一个值吧V●ᴥ●V);我首先把从1开始...原创 2019-07-23 19:59:47 · 164 阅读 · 0 评论 -
Cow Contest(Warshall算法+结论)
这道题终于把离散数学学到的Warshall算法用上了,好开心;所以比赛是最好的知识使用场;这道题根据题意可以知道,A wins B ,Bwins C就可以知道A wins C所以这很明显就是传递闭包,然后最后去求位置确定的个数,那么得到确定位置的个数那么就必须知道这点:如果A 赢了x头牛,输给了y头牛,那么如果A的位置确定就应该有x+y==n-1;所以最后利用Warshall算法求出传递闭...原创 2019-08-01 10:55:44 · 249 阅读 · 0 评论 -
A - Age of Moyu HDU - 6386(Dijkstra+堆优化)
要解决这道题,可以用dfs+bfs,但是我不会,所以我只会dijkstra算法;要解决这道题必须明白迪杰斯特拉算法的核心思想,我是这样理解的:我可以任意举例一个图:比如这个图,那么求1—6的最短路径;当然因为这个点很少可以用二维数组来存储;Dijkstra思想:我先利用dis[]数组来存下1能到达的所有点的距离,然后其他点置为INF(通常INF令为0x3f3f3f3f就够了);然后...原创 2019-08-01 10:55:33 · 185 阅读 · 0 评论