
第十一章 图论模型与算法(例题)
aozil_yang
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
例题11-5 UVA - 10048 Audiophobia 噪音恐惧症(Floyd算法)
大体题意: 给你C个点 和S条边,边权威噪音值,当噪音值太大时,耳膜会受到损害! 给你一列询问,每个询问 包括u 和 v,问从u 到 v 最大噪音值 最小值是多少! 思路: Floyd 求任意两点最短路,有些不同, 正常的Floyd 时 g[i][j] = min(g[i][j], g[i][k] + g[k][j]); 这里应该为 g[i][j] = min(g[i][j],max(原创 2016-05-19 22:18:27 · 1096 阅读 · 0 评论 -
例题11-2 UVA - 1395 Slim Span 苗条的生成树(Kruscal最小生成树)
大体题意: 给出一个n(n 思路: 直接枚举 起点, 然后从起点开始构造最小生成树,构造好了 就更新答案,ans = min(ans,w[r]-w[l])! 每枚举一次起点 就要刷新一下并查集! 详细见代码: #include #include #include #include #include #include #include #include #include #inclu原创 2016-08-17 11:35:45 · 538 阅读 · 0 评论 -
UVA 12219 Common Subexpression Elimination (dfs瞎搞)
大体题意: 给你一个字符串按照二叉树的形式,用消除公共表达式的方法可以减少表达式树上的的结点,输出最少的结点的图,详细见原题。 思路: 写的比较乱,感觉时间还行吧。借鉴一下吧。 先写dfs 建树,在写个dfs2 从叶子结点向上更新父结点 重新标号,使得相同类的结点归为一类。 在写个dfs3,重新从根节点标号,变得有序。 最后print 函数 要么输出数字 要么输出字符串 讨论一下即可原创 2017-02-20 22:23:30 · 437 阅读 · 0 评论 -
UVA 1151 Buy or Build (最小生成树)
题意: 告诉你n 个点的坐标,你要在两个点之间连线,使得点全部相同,连边的费用为这两个点的欧几里得距离,你的目的是使这个费用最低,并且你有q(q 思路: 全部的点相通,很明显是最小生成树。 最容易想到的是,暴力枚举哪一个套餐用,哪一个套餐不用,在求最小生成树,这样会超时,因为原图是一个完全图,有100W个边。 有个小优化: 我们可以先求一边最小生成树,n-1个边,在n-1个边中在暴力原创 2017-03-03 22:05:16 · 473 阅读 · 0 评论 -
UVA 12661 Funny Car Racing (Dijkstra最短路)
题意: 在一个赛车比赛中,有n 个交叉点和m 个单向道路,每条道路周期性的开启a秒,关闭b秒,通过时间是t秒, 求从S到T 的最短时间? 思路: 和正常的迪杰斯特拉一样,存的是时间,优先时间小的先弹出。 只不过在压入队列中 分情况讨论: 1.如果现在的时间能进入这条道路,并且能在道路关闭之前出来,就进入队列。 2.否则就等这条道路在开启时 在进入队列。 吐槽: 会有重边的存在,写成原创 2017-03-11 13:08:52 · 350 阅读 · 0 评论 -
UVA 1349 Optimal Bus Route Design (最小费用流 -- 二分图最小权完美匹配)
题意: 给你n 个点的有向带权图,找若干个有向圈,每个点恰好属于一个圈,要求权和尽量小。求最小权和 思路: 每个点恰好属于一个有向圈,意味着每个点都有一个唯一的后继,反过来,只要每个点都有唯一的后继,每个点一定恰好属于一个圈,我们想到了二分图匹配,每个点都要匹配,且权和最小,显然是二分图最小权的完美匹配。 直接拆点 1,2,3,4,,n 连接着s, 1‘ 2’ 3‘,,,n’ 连接着t原创 2017-03-13 19:38:14 · 590 阅读 · 0 评论 -
UVA 11082 Matrix Decompressing (最大流)
题意: 告诉你一个n*m的矩阵的每一行元素之和 和每一列元素之和,要求还原矩阵,矩阵的每一个元素不超过20。 思路: 没想到这种题竟然是网络流,长见识了: 我们拆成每一行x1,x2,x3,,,xn 和每一列 y1,y2,y3,,,ym 每一行和每一列连边,容量为19, 之所以是19,因为题目要求是1~20, 但流量可以是0,这样的话, 我们算出来是0~20的,不如我们减一,算0~19,原创 2017-03-14 00:52:15 · 414 阅读 · 0 评论