上一页 1 ··· 4 5 6 7 8 9 10 11 12 下一页

2012年7月4日

poj 3177 Redundant Paths

摘要: http://poj.org/problem?id=3177题意:给一个无向图,问至少增加多少边,使得图中的每两个点都有两条不同的路径(两条路径不能有相同的边)。思路:很明显,在环中的点都是满足条件的。所以首先是要进行缩点,记这时的叶子数为N,然后不断的加边成环缩点就会发现最后的结果就是(N+1)/ 2.注意处理重边和N=1的情况。View Code #include<set>#include<map>#include<stack>#include<queue>#include<cmath>#include<bitset> 阅读全文

posted @ 2012-07-04 21:56 aigoruan 阅读(146) 评论(0) 推荐(0)

poj 3160 Father Christmas flymouse

摘要: http://poj.org/problem?id=3160题意:给出一个有向图,每个点有一个点权,点权可能是正也可能为负,一个人从某点出发,沿着一些路,访问结点,或者仅仅是路过这个结点,而不去访问,最后求他能访问到的最大的点权和。思路:在有向图里,经过一个点,可以访问,也可以不访问,所以可以把环上的值都取完,其它的能达到就取。因此先进行缩点聚值,然后dfs+记忆化求最大值。View Code #include<set>#include<map>#include<stack>#include<queue>#include<cmath> 阅读全文

posted @ 2012-07-04 11:16 aigoruan 阅读(176) 评论(0) 推荐(0)

poj 2375 Cow Ski Area

摘要: http://poj.org/problem?id=2375题目大意:FR为自己的牛建立了一个H*W的矩形溜冰场,每一个小方格都有一个高度L,牛只能向相邻的小方格滑动(即上下左右),而且相邻的小方格的高度不能比当前高度高。为了使牛能够从任意一点到达任意其他的点。FR打算买一些ski lifts。它能够连接两个小方格,使得这两个小方格能够相互到达(与高度无关)。问至少需要多少ski lifts。使得牛能够从任意一点到达任意其他的点。解题思路:将此矩阵看成一个图。如果一个小方格能过到达相邻的一个小方格。那么它们之间就相当于有一条边。然后对此图求强连通分量。ans = Max(入度为0的连通分量数目 阅读全文

posted @ 2012-07-04 09:46 aigoruan 阅读(220) 评论(0) 推荐(0)

2012年7月3日

poj 2553 The Bottom of a Graph

摘要: http://poj.org/problem?id=2553题意:给一个无向图,如果一个点v能够到达w并且w也能到v则w和v都称为一个sink,题目要求从大到小输出图中所有的sink点。注意叶子结点都是sink点。思路:正如上面说的叶子结点都是sink,而且只有叶子结点才能形成sink点。因而先进行缩点,然后再求叶子结点。View Code #include<set>#include<map>#include<stack>#include<queue>#include<cmath>#include<bitset>#incl 阅读全文

posted @ 2012-07-03 21:51 aigoruan 阅读(114) 评论(0) 推荐(0)

poj 1523 SPF

摘要: http://poj.org/problem?id=1523题目大意:给定一个图,求这个图的割点,以及把该割点去掉以后的图有多少过连通分量。思路:先求出所有的割点,然后暴力枚举这些割点求连通分量(1000个点)。View Code #include<set>#include<map>#include<stack>#include<queue>#include<cmath>#include<bitset>#include<string>#include<climits>#include<cstd 阅读全文

posted @ 2012-07-03 20:39 aigoruan 阅读(148) 评论(0) 推荐(0)

hdu 3394 Railway

摘要: http://acm.hdu.edu.cn/showproblem.php?pid=3394题意:给定一个有N个点,M条边的无向图,求有多少条边没有在环内,有多少条边在至少2个环内。思路:画一下图,很容易就想到在一个双连通图里,如果边数>点数,则此双连通图里的边都是在2个环内的。其实是错的,下面数据就是这样的特例:6 61 21 32 33 43 54 5其中3为割点。主要就是处理这种数据,在tarjan中,u是v的父亲,从v回溯到u,如果low[v]>dfn[u],则说明v到u没有环,如果low[v]==dfn[u],则说明u到v有环;这两种情况都要处理。View Code #i 阅读全文

posted @ 2012-07-03 17:01 aigoruan 阅读(192) 评论(0) 推荐(0)

hdu 3639 Hawk-and-Chicken

摘要: http://acm.hdu.edu.cn/showproblem.php?pid=3639题意:给一个无向图,求出拥有最多祖父的节点。思路:先tarjan缩点,可以知道只能出现在叶子节点,所以反向建图,对每个入度为0的节点进行遍历统计。View Code #include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>#include<bitset>#include<stack>#include<utility>using nam 阅读全文

posted @ 2012-07-03 10:20 aigoruan 阅读(156) 评论(0) 推荐(0)

2012年6月28日

poj 3180 The Cow Prom

摘要: http://poj.org/problem?id=3180题意:给一个无向图,求出节点数据大于1的边通分量有多少个。思路:直接tarjan缩点统计。View Code #include<stdio.h>#include<string.h>#include<stdlib.h>#include<stack>#include<iostream>#include<utility>using namespace std;const int maxn = 10005;struct nd{ int v,next;}edge[maxn* 阅读全文

posted @ 2012-06-28 13:41 aigoruan 阅读(174) 评论(0) 推荐(0)

poj 3114 Countries in War

摘要: http://poj.org/problem?id=3114题目大意:战争期间的通信问题,同一个国家的城市间可以互相通信,距离可视为零,不同国家的城市间根据所给路径,求解最短路.思路:对于有向图中的环,先进行缩点重建图,然后对每个点直接spfa。注意:重建图后不一定是棵树,所以不能用lca。View Code #include<stdio.h>#include<string.h>#include<stdlib.h>#include<stack>#include<iostream>#include<utility>using 阅读全文

posted @ 2012-06-28 13:13 aigoruan 阅读(141) 评论(0) 推荐(0)

2012年6月27日

poj 2186 Popular Cows

摘要: http://poj.org/problem?id=2186题意:若A认为B好,且B又认为C好,则可以推出A认为C好,现给一个这样的无向关系图,求出有多少个点,所有人都认为它好。思路:先对图进行tarjan去环缩边成点,并统计环中点的个数,然后查看一下出度为0的点是否为1,如果是则这个点代表的环里的点的数目,否则puts("0");View Code #include<stdio.h>#include<string.h>#include<iostream>#include<stack>#include<utility&g 阅读全文

posted @ 2012-06-27 21:18 aigoruan 阅读(133) 评论(0) 推荐(0)

上一页 1 ··· 4 5 6 7 8 9 10 11 12 下一页

导航