上一页 1 2 3 4 5 6 7 8 9 ··· 29 下一页
摘要: 一开始想傻了,其实缩点之后,就很简单了。/**State: HDU3072 328MS 2648K 2039 B C++ *题目大意:* 有一个含边权有向图,然后有向图中的强连通分量里面通信不需要* 权值,要求从0点开始向所有的点通信,然后求最后总权值最小。*解题思路:* 看到强连通分量不需要权值即可通信,就想到缩点。缩点之后就是一个* DAG,然后这个DAG里面的除了起始点0之外,所有点都要走一次,那么* 想清楚了其实就是每一个点有多条入度边,只需要找其中权值最小的* 一条入度边即可,然后实现这个过程可以在缩点... 阅读全文
posted @ 2012-08-16 08:37 cchun 阅读(145) 评论(0) 推荐(0) 编辑
摘要: //缩点+spfa/**State: POJ3114 Accepted 2908K 375MS C++ 2953B*题目大意:* 给定一个有向有权图,然后要求求出图中任意两点间的最短距离。* 注意图中可能有环,每一个环中的任意两点间的距离为0.*解题思路:* 题意看了好久,一开始还以为是lca,后来才发现那个奇怪的特征,* 原来每个环中的任意两点间的距离为0,就说明要进行缩点了。缩点* 之后还是要求最短距离,这个时候就想到了spfa.* 总结就是: 缩点 + spfa*解题感想:... 阅读全文
posted @ 2012-08-16 08:36 cchun 阅读(510) 评论(0) 推荐(0) 编辑
摘要: /**题目大意:* 在数学里面有两种关系,一种是充分条件,即对于集合p,q,p => q,* 另一种是等价关系,p => q && q =>p, 这两种关系都具有传递性,p* => q 可以对应到有节点p到节点q有一条边。问:给定一些集合的充分* 性关系,确定出若让所有集合都等价,还需在添加最少的充分性条件。*解题思路:* 有向图加最少边变强连通,模板题*/View Code 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 using.. 阅读全文
posted @ 2012-08-16 08:34 cchun 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 缩点+加最少边 变强连通/**State: POJ2375 26396K 938MS C++ 2743B 险过:limit:1000ms*题目大意:* FR为自己的牛建立了一个H*W的矩形溜冰场,每一个小方格都* 有一个高度L,牛只能向相邻的小方格滑动(即上下左右),* 而且相邻的小方格的高度不能比当前高度高。为了使牛能够从* 任意一点到达任意其他的点。FR打算买一些ski lifts。它能够* 连接两个小方格,使得这两个小方格能够相互到达(与高度无* 关)。问至少需要多少ski lifts。... 阅读全文
posted @ 2012-08-16 08:33 cchun 阅读(471) 评论(0) 推荐(0) 编辑
摘要: /**State: POJ1144 224K 94MS C++ 1735B*题目大意:* 求无向图的割点。*解题思路:* 就输入比较奇葩,要处理下字符串而已。注意判断一个点是割点,要具备两个* 条件,一个是dfs树的根节点(比较特殊,注意减1,按tarjan去理解即可)* ,一个是dfs中的子节点。*/View Code 1 #include <iostream> 2 #include <vector> 3 #include <cstdio> 4 #include <cstring> 5 #include <stri... 阅读全文
posted @ 2012-08-16 01:42 cchun 阅读(192) 评论(0) 推荐(0) 编辑
摘要: //可作为模板,静态邻接表//HDU1827/**State: HDU1827 125MS 336K 2082 B C++ *题目大意:* wiskey大牛要通过电话通知大家,如果你有别的队员的电话,就可以有你代劳* 通知这些人,通知每个人的话费是不一样的,wiskey要花费最少达到通知所有* 人的目的。打电话这种模型具有传递性,用<A, B>来表示A可以通知到B,即如果* <A, B>,且<B, C>,则<A, C>。*解题思路:* 强连通分量缩点,之后求入度为0的点的个数即为最小通知人数,求缩点后,每个* ... 阅读全文
posted @ 2012-08-16 01:40 cchun 阅读(302) 评论(0) 推荐(0) 编辑
摘要: /**State: POJ1236 164K 32MS C++ 2735B*题目大意:* 给定一个n (n<=100)个点的有向图,问:* Q1、最少需要选择多少个点,使得从这些点出发能遍历完整个图;* Q2、最少需要添加多少条有向边,使得整个图成为连通图;*解题思路:* 用tarjan_scc缩点之后求入度为0的节点个数即可Q1,之后再算加最少的* 边使图构成强连通分量即可。算出度为0跟入度为0的数量的最大值。不管* 缩点后的图是否有连通分支。*注意:* 求加最少边变成强连通,只需算出... 阅读全文
posted @ 2012-08-16 01:39 cchun 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 这道题目挺有意思,amb大牛还发了那个强大的仙人掌图剖析的pdf,自己yy了一种解法,由于HDU上的数据够弱,暂时没有发现自己的代码有啥错误的。网上各种代码错误,还各种ac了~~这道题的数据,汗~~可以测测这一组数据:140 11 22 02 33 23 00 0正确输出:no/**State: HDU3594 78MS 2644K 3134 B C++ *题目大意:* 给一个有向图,判断这个有向图是否为仙人掌图。* 仙人掌图满足:1、是强连通图 2、每条边都只属于一个环*解题思路:* 判断强连通比较好做,主要是要判断每条边都属于一个环。* ... 阅读全文
posted @ 2012-08-16 01:37 cchun 阅读(491) 评论(0) 推荐(0) 编辑
摘要: 并查集运用,最后那一步并查集判断个人觉得有点儿小微妙。/**State: HDU3560 234MS 1812K 1260 B C++ *题目大意:* 给定一个无向图,求无向图的连通分量的数量,还有连通分量是一个环的* 数量。*解题思路:* 各种解法都行,用并查集比较简单。还可以用广搜,还可以用深搜,但是写起来麻烦。* 而且广搜跟深搜的时间复杂度是O(v + e),但是并查集的时间复杂度通过有效地修改* 可以改至接近线性,采用启发式合并还有路径压缩,还可以到达O(1),优雅至极。*题目困惑:* 用并查集开始写,... 阅读全文
posted @ 2012-08-16 01:32 cchun 阅读(380) 评论(0) 推荐(0) 编辑
摘要: 对于我来说真是一道好题,一开始纠结为缩点跟求块,最后还是一个8字形的图no了我一下。/**State: HDU3394 328MS 2052K 1918 B C++ 题意描述:* 公园有n个景点,公园的管理员计划要建m条道路,并且安排一* 些形成回路的参观路径,如果一条道路可以被多条回路共用,* 那么这条边是冲突边,如果不能形成环的路则为不需要的边,* 现在就是求无向图中冲突边和不需要边的条数*解题思路:* 把图分为多个块,然后判断每个块里面的边数,如果块的边数* 等于块的点数,那么该块只有一个环,如果块的边数... 阅读全文
posted @ 2012-08-16 01:30 cchun 阅读(422) 评论(1) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 29 下一页