摘要:
大意:求一个无向图的割边,其中可能有重边。思路:Tarjan求保存割边,排序输出。不知咋的,数组开到题目给定的100010会报错,改成200020就行了,KD啊。CODE:#include<iostream>#include<cstdlib>#include<cstdio>#include<cstring>#include<algorithm>usingnamespacestd;#defineMAXN10010#defineMAXM100010structEdge{intv,next;intid;}edge[MAXM*2];intfi 阅读全文
摘要:
大意:听说lcy帮大家预定了新马泰7日游,Wiskey真是高兴的夜不能寐啊,他想着得快点把这消息告诉大家,虽然他手上有所有人的联系方式,但是一个一个联系过去实在太耗时间和电话费了。他知道其他人也有一些别人的联系方式,这样他可以通知其他人,再让其他人帮忙通知一下别人。你能帮Wiskey计算出至少要通知多少人,至少得花多少电话费就能让所有人都被通知到吗?思路:强连通+缩点,然后统计入度为0的点,然后枚举每个SCC中花费最小的值相加,即cost[belong[i]] = min(cost[belong[i]], money[i]);CODE:#include<cstdio>#includ 阅读全文
摘要:
大意:求割顶的数量以及删除割顶之后子图的数量。思路:Tarjan算法求割顶,同POJ 1144 NetWork.CODE1:#include<cstdio>#include<cstring>#include<cstdlib>#include<algorithm>usingnamespacestd;constintMAXN=100010;constintMAXM=500010;structEdge{intv,next;}edge[MAXM];intdfn[MAXN],low[MAXN],sub[MAXN];intfirst[MAXN];intN,M 阅读全文
摘要:
无双图求割顶的个数,Tarjan模板。我这里有两种模板,似乎第一种比较简单。CODE1:#include<iostream>#include<cstdio>#include<cstring>#include<cstdlib>usingnamespacestd;#defineMAXN110#defineMAXM10010structEdge{intv,next;}edge[MAXM];intfirst[MAXN];intdfn[MAXN],low[MAXN];intsub[MAXN];//保存的删除该节点之后,图分散变成子图的数量。intn;int 阅读全文