随笔分类 -  图论

摘要:题意:给出n(n <= 150)个城市和m(m <= 5000)个航班,每个航班有出发地、到达地、乘坐人数、起飞时间和降落时间(时间用时和分表示),求一个指定城市到另一个指定城市在规定的最晚时间前可以过去多少人(换航班的间隔至少需要30分钟)。 1、为了考虑时间的因素,把航班拆成两个点v1与v2,则 阅读全文
posted @ 2016-11-03 20:36 TianTengtt 阅读(183) 评论(0) 推荐(0)
摘要:题意:给定n (1 <= n <= 50) 种试剂,给定m (0 <= m <= n*(n - 1) / 2) 组互相反应的试剂,现在有一个空容器危险度为1,每次反应会使危险度 * 2,求最大的危险度。 利用并查集找出有多少连通块,n - 连通块个数 即为反应次数。 阅读全文
posted @ 2016-10-25 11:18 TianTengtt 阅读(160) 评论(0) 推荐(0)
摘要:题意:给定n个顶点和m条边的无向图,求能否构成二分图,若能,输出两个顶点集,否则输出 -1 对某个顶点,对于有边与它相连的其他点,染成与它不同的颜色,然后再研究这些点,继续染与它们有关系的点,直到所有有边相连的点都被染色完毕。 不能构成:若要染的顶点之前已经被染成同样的颜色,则不能构成二分图。 孤立 阅读全文
posted @ 2016-10-25 11:08 TianTengtt 阅读(177) 评论(0) 推荐(0)
摘要:题意:用标号给定几个网站,一个标号(1~100)代表一个网站(标号的给定无连续性)。可以通过一个网站访问另一个网站(通过给定的有向图路径),题目保证任意两个网站都有路到达且输入无自环,求每两个网站访问,最少需要经过几个网站的个数平均值。 先重整标号使其有序,再用floyd算法求出每两个的最短路,最后 阅读全文
posted @ 2016-10-25 10:52 TianTengtt 阅读(102) 评论(0) 推荐(0)
摘要:将边按权值排序后,枚举最小权值的边, 从第一个边开始,直到往后能够构成生成树,并且记录中间出现过的最大权值和最小权值, 最后不断取最小值即可 切记每次枚举前,都要初始化父亲节点 阅读全文
posted @ 2016-10-25 10:44 TianTengtt 阅读(188) 评论(0) 推荐(0)
摘要:题意:输出所有电话圈(电话圈:要求两个人直接或间接互相接通) 用floyd算法求出传递闭包,即把所有间接接通的两个人都找出来并且标记 然后再用并查集维护 阅读全文
posted @ 2016-10-25 10:41 TianTengtt 阅读(147) 评论(0) 推荐(0)