POJ 2631 Roads in the North(树的直径)
http://poj.org/problem?id=2631
题意:
有一个树结构, 给你树的所有边(u,v,cost), 表示u和v两点间有一条距离为cost的边. 然后问你该树上最远的两个点的距离是多少?(即树的直径)
分析:
对于树的直径问题, <>(22 2-7)例题有说明.
具体解法: 首先从树上任意一个点a出发, (BFS)找出到这个点距离最远的点b. 然后在从b点出发(BF...
分类:
其他好文 时间:
2014-11-02 12:33:11
阅读次数:
152
题目链接:http://poj.org/problem?id=1947题目大意:给你一棵树,树上N个节点。问最少拆掉多少条边使得存在一个联通块,有P个节点。树形dp,设计状态:dp[u][i]代表以u为根节点的剩下i个节点最少需要拆掉多少条边。状态转移:dp[u][i+j] = min(dp[u][...
分类:
其他好文 时间:
2014-11-01 01:01:55
阅读次数:
318
Description约翰的N(1≤N≤1,000,000,000)只奶牛要出发去探索牧场四周的土地.她们将沿着一条路走,一直走到三岔路口(可以认为所有的路口都是这样的).这时候,这一群奶牛可能会分成两群,分别沿着接下来的两条路继续走.如果她们再次走到三岔路口,那么仍有可能继续分裂成两群继续走.奶牛...
分类:
其他好文 时间:
2014-10-29 01:37:42
阅读次数:
200
POJ 3411 Paid Roads开路:N个城市间有m条单向路,分别从a到b,可以在c处交P路费,也可以直接交R路费。那么问题来了,你的挖掘机怎么开最省钱?3.4熟练掌握动态规划状态压缩DP乍一看可以Dijkstra,实际上的确可以Dijkstra。不过多了一个预交费的c,所以在遍历的时候多了一...
分类:
其他好文 时间:
2014-10-27 00:12:38
阅读次数:
146
Paid Roads
Time Limit: 1000MS
Memory Limit: 65536K
Total Submissions: 5481
Accepted: 1947
Description
A network of m roads connects N cities (numbered from 1 to N). T...
分类:
其他好文 时间:
2014-10-26 14:25:28
阅读次数:
112
HDU 1815, POJ 2749 Building roads
题目链接HDU
题目链接POJ
题意:
有n个牛棚, 还有两个中转站S1和S2, S1和S2用一条路连接起来。 为了使得任意牛棚两个都可以有道路联通,现在要让每个牛棚都连接一条路到S1或者S2。
有a对牛棚互相有仇恨,所以不能让他们的路连接到同一个中转站。还有b对牛棚互相喜欢,所以他们的路必须连到同一个中专站。
...
分类:
其他好文 时间:
2014-10-26 11:46:02
阅读次数:
399
Building Roads
Time Limit: 1000MS
Memory Limit: 65536K
Total Submissions: 9360
Accepted: 2690
Description
Farmer John had just acquired several new farms! He wants to...
分类:
其他好文 时间:
2014-10-24 12:59:25
阅读次数:
224
题目链接:http://poj.org/problem?id=1251思路:使用最小生成树算法,可以求解。需要注意的树Kruskal算法中使用了并查集,对于并查集用法需要注意。代码:#include #include using namespace std;const int N = 30, M =...
分类:
其他好文 时间:
2014-10-23 20:32:48
阅读次数:
204
题意 在n个村庄之间修路使所有村庄连通 其中有些路已经修好了 求至少还需要修多长路
还是裸的最小生成树 修好的边权值为0就行咯
#include
#include
#include
#include
using namespace std;
const int N = 105, M = 10050;
int par[N], n, m, mat[N][N];
int ans;
struc...
分类:
其他好文 时间:
2014-10-23 12:29:17
阅读次数:
200
题意 有n个村子 输入n 然后n-1行先输入村子的序号和与该村子相连的村子数t 后面依次输入t组s和tt s为村子序号 tt为与当前村子的距离 求链接所有村子的最短路径
还是裸的最小生成树咯
#include
#include
#include
using namespace std;
const int N=30,M=1000;
int par[N],n,m,ans;
struct...
分类:
其他好文 时间:
2014-10-23 10:45:21
阅读次数:
174