摘要: 题意: 曹操有N个岛,这些岛用M座桥连接起来,每座桥有士兵把守(也可能没有),周瑜想让这N个岛不连通,但只能炸掉一座桥,并且炸掉一座桥需要派出不小于守桥士兵数的人去,桥的守兵数为0时,也需要派出一个人去炸桥。 思路: 首先判断图是否连通,不连通则不需要去炸桥,输出0。图连通,则可以用Tarjan找割 阅读全文
posted @ 2017-10-14 15:18 codeg 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 题意: 有n个王子和m个公主,每个王子都会喜欢若干个公主,也就是王子只跟自己喜欢的公主结婚,公主就比较悲惨, 跟谁结婚都行。然后输出王子可能的结婚对象,必须保证王子与任意这些对象中的一个结婚,都不会影响到剩余的王子的配对数,也就是不能让剩余的王子中突然有一个人没婚可结了。 思路: 对每个没有匹配的公 阅读全文
posted @ 2017-10-13 17:46 codeg 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 题意: 给一个n个点的简单有向图,问最多能加多少条边使得该图仍然是简单有向图,且不是强连通图。简单有向图的定义为:没有重边,无自环。 强连通图的定义为:整个图缩点后就只有一个点,里面包含n个原点,也就是一个连通分量。如果一开始就是一个强连通图,则输出-1。 思路: 要加边最多那么加边后的图连通分量越 阅读全文
posted @ 2017-10-13 16:03 codeg 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 题意: 有F个牧场,1<=F<=5000,现在一个牧群经常需要从一个牧场迁移到另一个牧场。奶牛们已经厌烦老是走同一条路,所以有必要再新修几条路,这样它们从一个牧场迁移到另一个牧场时总是可以选择至少两条独立的路。现在F个牧场的任何两个牧场之间已经至少有一条路了,奶牛们需要至少有两条。给定现有的R条直接 阅读全文
posted @ 2017-10-11 11:26 codeg 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 题意: 求出连接各个村庄最小的公路总长度,把最小公路总长度求出来。 思路: 最小生成树原理,带入数据求得。 代码: prim: krusual: 阅读全文
posted @ 2017-10-10 21:20 codeg 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 题意: 在这些小岛中建设最小花费的桥,但是一座桥的距离必须在10 -- 1000之间。 思路: 用最小生成树解决吧,就那两个算法。 代码: prim #include <iostream> #include <cstdio> #include <cstring> #include <cmath> u 阅读全文
posted @ 2017-10-10 21:13 codeg 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 题意: 有n个农场,已知这n个农场都互相相通,有一定的距离,现在每个农场需要装光纤,问怎么安装光纤能将所有农场都连通起来,并且要使光纤距离最小,输出安装光纤的总距离。 思路: 又是一个最小生成树,因为给出了一个二维矩阵代表他们的距离,直接算prim就行了。 代码: 阅读全文
posted @ 2017-10-10 20:15 codeg 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 题意: 给你N个城市的坐标,城市之间存在公路,但是由于其中一些道路损坏了,需要维修,维修的费用与公路长成正比(公路是直的)。 但现有M条公路是完整的,不需要维修,下面有M行,表示不需要维修的道路两端的城市,问最短费用。 思路: lowcost[i]数组存还未处理的城市i离已经处理过的城市的最短距离, 阅读全文
posted @ 2017-10-10 19:14 codeg 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 题意: 有N个客户,M个仓库,和K种货物。已知每个客户需要每种货物的数量,每个仓库存储每种货物的数量,每个仓库运输各种货物去各个客户的单位费用。判断所有的仓库能否满足所有客户的需求,如果可以,求出最少的运输总费用。 思路: 最小费用最大流。先判断是否每种货物的存储总量都足够,足够的话,对每一种货物进 阅读全文
posted @ 2017-10-09 21:09 codeg 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 题意: 一个无向图可以有重边,下面q个操作,每次在两个点间连接一条有向边,每次连接后整个无向图还剩下多少桥(注意是要考虑之前连了的边,每次回答是在上一次的基础之上)。 思路: 首先运行一次Tarjan,求出桥和缩点,那么远无向图将缩点为一棵树,树边正好是原来的桥。每次连接两点,看看这两点是不是在同一 阅读全文
posted @ 2017-10-09 19:39 codeg 阅读(175) 评论(0) 推荐(0) 编辑