摘要:
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搞掉环,建反图虚拟根节点转换 阅读全文