有 N 个网络节点,标记为 1 到 N。给定一个列表 times,表示信号经过有向边的传递时间。 times[i] = (u, v, w),其中 u 是源节点,v 是目标节点, w 是一个信号从源节点传递到目标节点的时间。现在,我们向当前的节点 K 发送了一个
转载
2023-11-20 10:43:28
44阅读
1、带权图,每个边附带一个值或权 (1)最小生成树:以最小代价将一个无方向的带权图的所有节点连起来,除根节点外,每个节点都有一个父节点所以叫最小生成树。 (2)最短路径:连接一个有方向的带权图中两个顶点之间代价的最小距离 (3)旅行商问题:寻找能够遍历一个完整且无方向带权图中每个顶点(仅一次),并且最终返回到起始顶点的路径。2、最小生成树Prim算法 起始:把所有节点键值置为无穷大,根节点置
3],[4,5,6]]输出:12解题思路:...
原创
2023-06-15 14:06:57
65阅读
Description定义: 一个不含圈的有向图G中,G的一个路径覆盖是一个其结点不相交的路径集合P,图中的每一个结点仅包含于P中的某一条路径。路径可以从任意结点开始和结束,且长度也为任意值,包括0。请你求任意一个不含圈的有向图G的最小路径覆盖数。 Inp...
转载
2018-12-15 15:49:00
104阅读
题源:LeetCode 链接:https://leetcode-cn.com/problems/minimum-path-sum/ 还是一道经典的动态规划题 1 class Solution { 2 public: 3 int minPathSum(vector<vector<int>>& grid ...
转载
2021-08-09 09:18:00
117阅读
2评论
一.题目名称“求N个数的最大公约数和最小公倍数”二.题目内容用C/C++/Java/Python实现程序解决问题。 已知正整数a0,a1,b0,b1,设某未知正整数x满足: 1、 x和a0的最大公约数是a1; 2、 x和b0的最小公倍数是b1。输入第一行为一个正整数n,表示有n组输入数据。接下来的n行每行一组输入数据,为四个正整数a0,a1,b0,b1,每两个整数之间用一个空格隔开。输入数据保证a
嘟嘟嘟 这里就讲怎么做……因为为什么这么做以及证明我都不知道…… 首先,我们将原图的每一个点 i 都拆成 i 和 i +n 两个点。接着把所有 i 都和源点相连,边的容量为1,;把所有i + n 都和汇点相连,容量也为1。然后对于原图中的一条边(u, v),就在新图中连一条(u, v + n)的边。
原创
2021-05-29 18:57:14
266阅读
给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明
转载
2021-08-13 11:43:36
187阅读
给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上
转载
2022-06-13 17:59:41
45阅读
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3335思路:有矛盾的条件一般都应该往匹配这方面想:能够整除的连边,于是答案(最小路径)==|顶点个数|-最大匹配。这儿要注意的地方就是要去掉相同的数(排序一下即可),然后就是hungry算法搞定就可以了。 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 #include<vector> 6 using namespace
转载
2013-06-01 13:55:00
50阅读
2评论
【代码】64. 最小路径和。
原创
2023-10-26 10:32:30
40阅读
Dijkstra算法Dijkstra算法可用于求正权图上的单源最短路径,该算法适用于有向图和无向图。如果要求每两点之间的最短路径,需要调用n次Dijkstra算法,或者使用Floyd算法。该算法的伪代码:清除所有点的标号
设d[0]=0,其他d[i]=INF
循环n次
{
在所有未标号节点中,选出d值最小的节点x
给结点x标记
对于从x出发的所有边(x,y),更新d[y]=
转载
2023-06-20 21:42:18
90阅读
作者:LeetCode-Solution 方法一:动态规划由于路 ...
转载
2021-07-21 09:18:00
144阅读
2评论
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4160思路:最小路径覆盖,如果满足条件:wi < wj , li < lj , and hi < hj,那么i->j连边,然后就是求最大匹配。最小路径覆盖=顶点数-最大匹配。 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 using namespace std; 6 struct Node{ 7 int wi
转载
2013-06-06 22:47:00
107阅读
2评论
题意:有n个地方,m个任务,每个任务给出地点,开始的时间和完成需要的时间,问最少派多少工人去可以完成所有的任务。给出任意两点直接到达需要的时间,-1代表不能到达。思路:很明显的最小路径覆盖问题,刚开始脑子抽了,没求最短路直接就做了,题目只给了两点间直接到达的时间,还可以间接到达,用floyd求出最短路。。。 #include#includeconst int N=300;const int inf=0x3fffffff;int head[N],num,match[N],link[N],map[30][30],n,m;struct edge{ int st,ed,next;}e[N*N]...
转载
2013-09-25 19:28:00
93阅读
2评论
一个PXP的有向图中,路径覆盖就是在图中找一些路径,使之覆盖了图中的所有顶点,且任何一个顶点有且只有一条路径与之关联;(如果把这些路径中的每条路径从它的起始点走到它的终点,那么恰好可以经过图中的每个顶点一次且仅一次);如果不考虑图中存在回路,那么每条路径就是一个弱连通子集. 由上面可以得出: 1.一个单独的顶点是一条路径; 2.如果存在一路径p1,p2,......pk,其中p1 为起点,pk为终点,那么在覆盖图中,顶点p1,p2,......pk不再与其它的顶点之间存在有向边. 最小路径覆盖就是找出最小的路径条数,使之成为P的一个路径覆盖. 路径覆盖与二分图匹配的关系(必须是没有圈...
转载
2013-07-25 10:54:00
296阅读
2评论
题目链接:http://poj.org/problem?id=1548思路:最小路径覆盖是很容易想到的(本题就是求最小的路径条数覆盖所有的点),关键是如何建图,其实也不难想到,对于当前点,如果后面的点它能够到达,那么就连边。最小路径覆盖=顶点数-最大匹配。http://paste.ubuntu.com/5939379/
转载
2013-08-02 17:04:00
129阅读
2评论
题意:有n个点需要探索(编号从1到n),然后给出图上有那些有向边,问最少选择多少个点能遍历所有的点。注意走过的点可以重复再走。 题解:二分图求最小路径覆盖问题中点是不可以重复的,但这道题说可以重复,所以做法是可以把走过的点跳过,间接相连的点改为直接相连就可de <stdio.h>#include <string.
原创
2023-06-29 00:00:09
28阅读
给定一个包含非负整数的mxn网格,请找出一条从左上角到右下角
转载
2022-03-29 13:55:14
43阅读
dp[i][j] = min(dp[i - 1][j], dp[i][j - 1]) class Solution { public: int minPathSum(vector<vector<int>>& grid) { vector<vector<int>>dp(grid.size()); fo ...
转载
2021-08-08 16:16:00
90阅读