图论
图论算法相关
不维护了
这个作者很懒,什么都没留下…
展开
-
徒弟的下山之路
题干:徒弟的下山之路终于到了出师的日子,徒弟需要从山顶的纯阳宫找一条花费最少时间的下山之路。这座山用一个三角形来表示,从山顶依次向下有n层,第i层有i个可移动的位置,出口在最下层的左边。例如有一座5层的山:此示例中出口为最下层最左边的1所在位置。山上每个数字代表徒弟路过这个位置需要花费的时间,徒弟下山总时间为路径上数字之和。徒弟每次可以往左、右、左下、右下四个方向移动,例如徒弟位于第3层的数字5时可以向左走到4,向右走到6;也可以向左下走到1,向右下走到7;又如徒弟位于第3层的数字6时,可以向左原创 2020-08-10 22:08:49 · 502 阅读 · 0 评论 -
路径差
给定一个无向图,其中每条边表示成(u,v,c)(u,v,c)(u,v,c),其中ccc这条边的权重,给定起点和终点。求一条从sss到ttt的路径使得路径上的最大权重减去最小权重尽可能小。输入格式第一行两个数nnn和mmm,表示图中的顶点个数和边的个数,顶点的编号从1到n。接下来mmm行,每行三个数为图中的一条边,其中,满足1≤ui,vi≤n,1≤ci≤2∗1091 \leq u_i,v_i \leq n, 1 \leq c_i \leq 2*10^91≤ui,vi≤n,1≤ci≤2∗109。接原创 2020-07-30 20:10:33 · 361 阅读 · 0 评论 -
旅行商问题dfs解法
一个售货员必须访问n个城市,恰好访问每个城市一次,并最终回到出发城市。售货员从城市到城市的旅行费用是一个整数,旅行所需的全部费用是他旅行经过的的各边费用之和,而售货员希望使整个旅行费用最低。(等价于求图的最短哈密尔顿回路问题)输入格式第一行两个数n和m,表示顶点数和边数。接下来行,每行三个数,表示有向边h和路径长度。图中可能有重边和自环。输出格式一个数如果不存在哈密顿环路,则输出-1,否则输出最短哈密尔顿回路长度。样例input4 121 2 11 3 101 4 102 1原创 2020-05-31 00:06:20 · 1546 阅读 · 0 评论 -
农场看守
问题描述蒜头君最近做了农场看守,他每天晚上的工作就是巡视农场并且保证没有人破坏农场。从谷仓出发去巡视,并且最终回到谷仓。蒜头君视力不太好,其他农场守卫只需要对农场的每一条连接不同场地的路走一遍就可以发现是不是有异常情况了。但是他很仔细和耐心,对农场的每一条连接不同场地的路需要走两遍,并且这两遍必须是不同的方向,因为他觉得应该不会两次都忽略农场中的异常情况。每两块地之间一定至少有一条路连接。现在的任务就是帮他制定巡视路径。输入格式第一行输入两个整数 N(2≤ N ≤ 10000)N(2≤N≤100原创 2020-05-26 19:02:04 · 274 阅读 · 0 评论 -
已知树的前序和中序,求后序
亮点是distance函数,和递归的方法。#include <algorithm>#include <iostream>#include <string>#include <vector>using namespace std;int n, pos;vector<int> pre, in, post;void rec(int l, int r) { if (l >= r) return; in原创 2020-05-25 17:03:18 · 208 阅读 · 0 评论