BZOJ 2752 [HAOI2012]高速公路(road) 线段树...
分类:
其他好文 时间:
2015-08-10 22:22:54
阅读次数:
113
Description
I am going to my home. There are many cities and many bi-directional roads between them. The cities are numbered from 0to n-1 and each road has a cost. There are m roads. You are given ...
分类:
其他好文 时间:
2015-08-09 22:36:49
阅读次数:
154
uva 1486 TransportationDescriptionThere are N cities, and M directed roads connecting them. Now you want to transport K units of goods from city 1 to city N. There are many robbers on the road, so you...
分类:
其他好文 时间:
2015-08-09 17:10:29
阅读次数:
125
题目大意:给定一个无向图,要求你把所有的无向边变成有向边,并且添加最少的有向边,使得新的有向图强连通解题思路:这题和POJ - 3352 Road Construction
类似,只不过这题给的不一定是连通图,有可能缩点后出现孤立的点,但大体的思路是一样的
前面的就不详说了,可以看戳这里里面已经写了,这里讲一下怎么处理孤立的点
如果有n个点,要求在这n个点间添加有向边,使得这n个点变成强连通,...
分类:
其他好文 时间:
2015-08-09 09:32:27
阅读次数:
172
题目大意:给出一张无向图,问添加多少边才能使得这张无向图变成边双连通分量解题思路:先求出所有的边双连通分量,再将边双连通缩成一个点,通过桥连接起来,这样就形成了一棵无根树了
现在的问题是,将这颗无根树变成边双连通分量网上的解释是:统计出树中度为1的节点的个数,即为叶节点的个数,记为leaf。则至少在树上添加(leaf+1)/2条边,就能使树达到边二连通,所以至少添加的边数就是(leaf+1)/2。...
分类:
其他好文 时间:
2015-08-09 02:01:08
阅读次数:
123
题意: 秦始皇要在n个城市之间修路,而徐福声可以用法术位秦始皇免费修1条路,每个城市还有人口数,现要求徐福声所修之路的两城市的人口数之和A尽量大,而使n个城市互通需要修的路长B尽量短,从而使得A/B最大。问A/B最大是多少?(1000个城市)思路: 老徐可免费修得1条路,那么剩下最多也只需要修n.....
分类:
其他好文 时间:
2015-08-08 16:20:38
阅读次数:
869
Keep on Truckin'Problem DescriptionBoudreaux and Thibodeaux are on the road again . . ."Boudreaux, we have to get this shipment of mudbugs to Baton Ro...
分类:
其他好文 时间:
2015-08-07 21:42:07
阅读次数:
126
我们可以先建一棵最小生成树,然后再从这n个城市中选择2个城市,把二者之间的路看做用法术造的路。如果这条路在最小生成树上,即去掉这条边后最小生成树会变成两棵独立的树,那么A/B就是(二者城市的人口数总和/最小生成树的值减去二者之间的长度);如果这条路不在生成树上,那么为了使A/B最大,我们要在最小生成树上删除一条权值最大的边使得生成树分为两棵树,同时这2个城市不在同一颗树上,然后就可以把这两个城市之间的路视为用法术造出的路,A/B就是
(二者城市的人口数总和/最小生成树的值减去二者之间某条使二者连通的边的最大...
分类:
其他好文 时间:
2015-08-06 18:32:15
阅读次数:
137
Problem DescriptionThere arenapple trees planted along a cyclic road, which isLmetres long. Your storehouse is built at position0on that cyclic road.T...
分类:
其他好文 时间:
2015-08-04 20:52:18
阅读次数:
212
//给出每点的坐标和其到人口量,找一个生成树,其中有一条边造价为0
//问A/B的最大值,A这条边连接的两个点的人口之和
//B除了这条边以外的其他边的长度之和
//先找到最小生成树,然后枚举所有边,如果这条边是最小生成树上的边,
//直接计算A/(sum-edge) ,如果不是,那么这条边加在最小生成树上会出现一个
//环,去除这个环中的最长的边依然是一棵树,
//用dp[u][v] 表示在最小生...
分类:
其他好文 时间:
2015-08-04 11:24:08
阅读次数:
129