随笔分类 - 图论——其他
摘要:http://poj.org/problem?id=3621题意:给定一张图,边上有花费,点上有收益,点可以多次经过,但是收益不叠加,边也可以多次经过,但是费用叠加。求一个环使得收益和/花费和最大,输出这个比值。思路:(转载)首先的一个结论就是,不会存在环套环的问题,即最优的方案一定是一个单独的环,而不是大环套着小环的形式。这个的证明其实非常的简单,大家可以自己想一下(提示,将大环上的收益和记为x1,花费为y1,小环上的为x2,y2。重叠部分的花费为S。表示出来分类讨论即可)。有了这个结论,我们就可以将花费和收益都转移到边上来了,因为答案最终一定是一个环,所以我们将每一条边的收益规定为其终点的
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4409赛后才过只能说悲剧了,知道思路,stl不熟悉,所以导致写的很慢....占据了很多时间,手速+代码准确度。。哎。。。题意:给你一个家谱,n个人的姓名,姓名前边的点代表了他是第几代人。每个人的祖先肯定在他之前出现。有三种操作:L:输出这个家族的序列,不是按层数,而是递归的输出,还要保证字典序升序;b name 输出name的兄弟个数,注意这里堂兄弟不算:c name1 name2 求name1 name2的最近公共祖先。思路:首先我用set建图这样就能保证L输出时按字典序输出,mp用来进行映射,rmq+lc
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=4297题意:给出n个点的有向图,每个点的出度均为1.有m个询问,每个询问两个数(u,v),表示两个人一个在u一个在v。对于每个询问,请你选择一个点P使得u、v均能到达P。设u到达P需要A步,v到达P需要B步。求一个P使得max(A,B)最小?若答案不唯一,输出min(A,B)最小的;若答案还不唯一,输出A>=B的。(不存在P的A=B=-1)思路:这个有向图很特别,由于每个节点只有一条出边,所以如果形成一个环的话就只能有指向这个环的边,同时一个子图内最多存在一个环,tarjan搞掉环,建反图虚拟根节点转换
阅读全文
摘要:http://poj.org/problem?id=1236N(2<N<100)各学校之间有单向的网络,每个学校得到一套软件后,可以通过单向网络向周边的学校传输,问题1:初始至少需要向多少个学校发放软件,使得网络内所有的学校最终都能得到软件。2,至少需要添加几条传输线路(边),使任意向一个学校发放软件后,经过若干次传送,网络内所有的学校最终都能得到软件。首先求出该图所有的强连通分量,将其缩为一点,因为对于强连通分量,任意两点都能互相可达,只要给DAG(强连通分量)中的任意一点都能互相到达。缩点后然后统计每个点的入度与出度,入度为0的点肯定是A的答案,而对于答案B则是max(入度为0
阅读全文