cojs 908. 校园网 ★★ 输入文件:schlnet.in 输出文件:schlnet.out 简单对比时间限制:1 s 内存限制:128 MB USACO/schlnet(译 by Felicia Crazy) 描述 一些学校连入一个电脑网络。那些学校已订立了协议:每个学校都会给其它的一些学校 ...
分类:
编程语言 时间:
2016-05-15 09:39:02
阅读次数:
249
http://poj.org/problem?id=3694
题意:
给定一个图,对这个图进行加边,求出每加一条边后,图中桥的个数。
思路:
首先肯定是要先求出原图中桥的个数,并且把桥标记起来。思考加一条边以后桥的数量会减少多少,联想到之前的那道题,就是加一条边,能够使桥的数量最少是多少。之前那个做法就是缩点后树的直径,这个就是可以减少的最多的桥的数量。因为如果这是一条链,将两个端点连起来,...
分类:
其他好文 时间:
2016-05-12 21:59:13
阅读次数:
179
点击打开链接
题意:给一个图,然后依次加进去边,问每次加过边后还有几个桥,之前加入的会影响后面加入的
思路:先将图的桥全部找出来,然后将桥的点标记上,然后不需要缩点,直接进行裸的LCA,再找最近公共祖先的时候,遇到标记的点将结果减1,然后将标记取消,不知道为什么我写的跑的特别慢,别人写的都很快,有神犇知道求指教
#include
#include
#include
#includ...
分类:
其他好文 时间:
2016-05-12 12:09:56
阅读次数:
155
大意:在一个联通分量里面的边权值忽略不计,求缩点后的所有联通分量链接在一起的最小权值和。
思路:必然先缩点,最后得到的图为DAG,然后就是统计权值,对于那么到达当前的缩点可能有多个入度,所以选择最小的即可。最后避开起始点的dis[star] == inf.累加即可。
#include
#include
#include
#include
#include
#include
#i...
分类:
其他好文 时间:
2016-05-12 11:45:08
阅读次数:
183
tarjan缩点模板 现在才学是不是太晚了= = ...
分类:
其他好文 时间:
2016-05-10 18:03:43
阅读次数:
151
题意:投票,投票可以传递,当一个人投票时,要把此人的得票数全给被投的那个人,问最后按升序输出得票数最高的人。
想法:显然在一个连通块内的所有点的得票数都是一样的,即:块内点数-1,(1:是他自己本身)。所以先要tarjan缩点,然后求出每一个块可以由几个块到达(这里可以反向建边dfs)。最后输出最大得票数的人即可。
#include
#include
#include
#inc...
分类:
其他好文 时间:
2016-05-07 11:12:46
阅读次数:
163
大意:有n座岛和m条桥,每条桥上有w个兵守着,现在要派不少于守桥的士兵数的人去炸桥,只能炸一条桥,使得这n座岛不连通,求最少要派多少人去。
思路:我们就是要缩点后直接求桥上人的最少数量。(PS:1、注意图如果不联通直接输出0。2、如果图中的桥上人为0,个那么要让一个人去。3、重边的问题。这里可以忽略)
#include
#include
#include
#include
#i...
分类:
移动开发 时间:
2016-05-07 11:07:21
阅读次数:
223
大意:给定n点,和m条边的关系图中的一些边随时可能施工导致不能够通过,所以至少加多少条边才能够使得途中任意两条边联通?
思路:很明显只要图中的任意两点都是两条边来链接即可。那么我们可以先缩点构建新图,然后统计出度为1的点的个数ans,那么需要加的边数就是(ans+1)/2条;
#include
#include
#include
#include
#include
#inclu...
分类:
移动开发 时间:
2016-05-07 10:04:55
阅读次数:
149
题目链接:http://poj.org/problem?id=3177
题意:至少加多少边才能构成边双连通图。
思路:求边双连通分量,对于每一个边双连通分量都看做一个点,也就是进行缩点,然后就构造出一个树,然后在这个树上加多少个树边,能够变成一个双连通图。 加的数量就是( 这棵树总度数为1的结点数 + 1 )/ 2#include
#include
#in...
分类:
其他好文 时间:
2016-05-07 09:38:21
阅读次数:
118