随笔分类 -  图论篇

摘要:题目链接:http://code-festival-2017-qualb.contest.atcoder.jp/tasks/code_festival_2017_qualb_c 题意:给出一个含 n 个顶点 m 条边的图,对于图中两点 u, v 之间可以添加一条边当且仅当 u, v 是通过三条边连接 阅读全文
posted @ 2017-10-09 21:04 geloutingyu 阅读(244) 评论(0) 推荐(0)
摘要:题目链接: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1445 题意: 中文题诶~ 思路: 可以将每种颜色看作一个节点, 从一种颜色到另一种颜色的代价看作这两个节点之间的距离, 即 x 节点到 y 节点的距离为行号为 阅读全文
posted @ 2017-09-11 16:33 geloutingyu 阅读(215) 评论(0) 推荐(0)
摘要:题目链接: http://poj.org/problem?id=3694 题意: 给出一个 n 个节点 m 条边的图, 然后有 q 组形如 x, y 的询问, 在前面的基础上连接边 x, y, 输出当前图中有多少桥 . 思路: http://www.cnblogs.com/scau20110726/ 阅读全文
posted @ 2017-08-02 17:04 geloutingyu 阅读(362) 评论(0) 推荐(0)
摘要:题目链接: http://codeforces.com/problemset/problem/780/E 题意: 给出一个 n 个点 m 条边的图, 有 k 个人, 初始位置可以为任意位置, 每个人最多不能经过超过 ceil(2 * n / k) 个顶点. 要使 k 个人经历所有顶点, 并输出 k 阅读全文
posted @ 2017-07-13 18:27 geloutingyu 阅读(272) 评论(0) 推荐(0)
摘要:题目链接:http://lx.lanqiao.cn/problem.page?gpid=T32 题意:中文题诶~ 思路:显然给出的地图是一颗树,若能求得树的直径 ans,则答案为:ans*(ans+1)/2 + 10*ans; 对于树的直径:若已知根节点root,则 ans 为 root 高度最大的 阅读全文
posted @ 2017-05-18 09:44 geloutingyu 阅读(264) 评论(0) 推荐(0)
摘要:題目鏈接:https://nanti.jisuanke.com/t/50 題意:中文題誒~ 思路:二分圖最大匹配 (匈牙利模板) 代碼: 1 #include <iostream> 2 #include <stdio.h> 3 #include <string.h> 4 using namespac 阅读全文
posted @ 2017-05-03 21:48 geloutingyu 阅读(165) 评论(0) 推荐(0)
摘要:題目鏈接: https://nanti.jisuanke.com/t/36 題意:中文題目誒~ 思路: 最大流模板題.... 關於最大流算法blog: http://www.cnblogs.com/zsboy/archive/2013/01/27/2878810.html http://blog.c 阅读全文
posted @ 2017-05-03 19:46 geloutingyu 阅读(247) 评论(0) 推荐(0)
摘要:题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1076 题意:中文题诶~ 思路:先用tarjan找出所有桥,再用桥限制的情况下dfs一遍。。。 代码: 1 #include <bits/stdc++.h> 2 u 阅读全文
posted @ 2017-04-24 22:13 geloutingyu 阅读(275) 评论(0) 推荐(0)
摘要:一.基本概念 1.桥:若无向连通图的边割集中只有一条边,则称这条边为割边或者桥 (离散书上给出的定义。。 通俗的来说就是无向连通图中的某条边,删除后得到的新图联通分支至少为2(即不连通; 2.割点:若无向连通图的点割集中只有一个点,则称这个点为割点或者关节点 ; 通俗的来说就是无向连通图中的某条边, 阅读全文
posted @ 2017-04-24 19:52 geloutingyu 阅读(1815) 评论(0) 推荐(0)
摘要:题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1640 题意:中文题诶~ 思路:kruscal 题目要求是在边权最大值最小的情况下总权值尽量大,注意其中的优先级; 可以先从小到大加边kruscal一遍得到最小的最 阅读全文
posted @ 2017-04-21 21:27 geloutingyu 阅读(192) 评论(0) 推荐(0)
摘要:题目链接:http://qscoj.cn/contest/12/problem/53/ 题意:中文题诶~ 思路:n个点, 那么最多用n种颜色,所以我们可以枚举颜色种类1~n,然后再判断用 i 种颜色可不可行; 对于如何判断,dfs一遍就好了。。。 代码: 1 #include<stdio.h> 2 阅读全文
posted @ 2017-04-04 21:10 geloutingyu 阅读(396) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2612 题意:给出一个n*m的矩阵,' . ' 表示可以走的路, ' # '表示不能走的路 ,’ @'表示KCF, ‘Y' , 'M' 表示两个人开始的位置, 他们可以走到相邻的路,每走一步需要11分钟, 阅读全文
posted @ 2017-03-25 20:42 geloutingyu 阅读(109) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/contest/791/problem/B 题意:给出一个无向图,问是否满足若存在边ab, bc则存在边ac; 思路:题意即,对于一个点,其所有子节点都是相互可达的,即为完全图,不过给出的不一定是连通图,所以我们需要判断所有连通分支是否全为为完全 阅读全文
posted @ 2017-03-20 16:06 geloutingyu 阅读(1293) 评论(0) 推荐(0)
摘要:题目链接:http://lx.lanqiao.cn/problem.page?gpid=T35 题意:中文题诶~ 思路:dfs 假设star 和 end之间总路径数目为ans, 那么若经过路径上某点到达终点的路径数为ans,则此点必为割点(所有路径都要经过此点,去掉了s就到不了e了嘛~); 所以我们 阅读全文
posted @ 2017-03-17 21:44 geloutingyu 阅读(156) 评论(0) 推荐(0)
摘要:最短路模板:http://www.cnblogs.com/geloutingyu/p/6511586.html 次短路模板:http://www.cnblogs.com/geloutingyu/p/6528406.html k短路模板: http://www.cnblogs.com/geloutin 阅读全文
posted @ 2017-03-14 18:08 geloutingyu 阅读(153) 评论(0) 推荐(0)
摘要:题目链接:http://poj.org/problem?id=3164 题意:第一行为n, m,接下来n行为n个点的二维坐标, 再接下来m行每行输入两个数u, v,表点u到点v是单向可达的,求这个有向图的最小生成树即求最小树形图; 思路: 这是一道最小树形图模板题; 我们可以用朱刘算法来解: 朱刘算 阅读全文
posted @ 2017-03-12 13:01 geloutingyu 阅读(265) 评论(0) 推荐(0)
摘要:题目链接:http://poj.org/problem?id=2449 题意:给出一个有向图,求s到t的第k短路; 思路:k短路模板题,可以用A_star模板过; 单源点最短路径+高级搜索A*;A*算法结合了启发式方法和形式化方法;启发式方法通过充分利用图给出的信息来动态地做出决定而使搜索次数大大降 阅读全文
posted @ 2017-03-10 20:28 geloutingyu 阅读(637) 评论(0) 推荐(0)
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1688 题意:第k短路,这里要求的是第1短路(即最短路),第2短路(即次短路),以及路径条数,最后如果最短路和次短路长度差1,则输出两种路径条数之和,否则只输出最短路条数。 思路:dijkstra变形,注 阅读全文
posted @ 2017-03-09 22:59 geloutingyu 阅读(205) 评论(0) 推荐(0)
摘要:floyd/dijkstra/bellmanford/spaf 模板: 1. floyd(不能处理负权环,时间复杂度为O(n^3), 空间复杂度为O(n^2)) floyd算法的本质是dp,用dp[k][i][j]表示以(1....k)为中间点,i, j之间的最短距离为多少,dp[0][i][j]即 阅读全文
posted @ 2017-03-08 21:51 geloutingyu 阅读(438) 评论(0) 推荐(0)
摘要:题目链接:http://codeforces.com/problemset/problem/687/A 题意:给出一个n个点m条边的图,分别将每条边连接的两个点放到两个集合中,输出两个集合中的点,若不可能则输出-1; 思路:通过画图我们不难发现,图中没有出现长度为奇数的环则是可行的,反之则是不行的. 阅读全文
posted @ 2017-03-02 22:13 geloutingyu 阅读(206) 评论(0) 推荐(0)