ZOJ3526【缩点思想】】的更多相关文章

一开始做的时候(TLE),A,C,G这三类作为边,然后点和点直接建边搜个环:then time BOOM! 可以发现只属于"A"类的之间都并在一起就好,同理"G"类和"C"类,那么整幅图会变成? 所以我们只需要分析三角的位置,从而就能搞出整个图是否是个环. 一种思路: 直接分类!但是要严谨... 1.如果只有以一个"A"类/"G"类/"C"类为交界的,举只有"A"类例…
Paint the Grid Reloaded Time Limit: 2 Seconds      Memory Limit: 65536 KB Leo has a grid with N rows and M columns. All cells are painted with either black or white initially. Two cells A and B are called connected if they share an edge and they are…
接上一节 Tarjan算法初探(1):Tarjan如何求有向图的强连通分量 Tarjan算法一个非常重要的应用就是 在一张题目性质在点上性质能够合并的普通有向图中将整个强连通分量视作一个点来把整张图变成一张DAG(即有向无环图) 而DAG的形态满足最优子结构经常与DP联系在一起 故缩点常作为一条桥梁将图论与DP相联系 缩点思想不难理解 这里主要说明一下代码的操作细节与流程: 1.使用Tarjan算法求出每个点属于哪一个强连通分量 2.枚举每一条点将每一个点对应性质合并到新的点上 3.枚举每一条边…
题目描述 某人有一套玩具,并想法给玩具命名.首先他选择WING四个字母中的任意一个字母作为玩具的基本名字.然后他会根据自己的喜好,将名字中任意一个字母用"WING"中任意两个字母代替,使得自己的名字能够扩充得很长. 现在,他想请你猜猜某一个很长的名字,最初可能是由哪几个字母变形过来的. 输入输出格式 输入格式: 第一行四个整数W.I.N.G.表示每一个字母能由几种两个字母所替代. 接下来W行,每行两个字母,表示W可以用这两个字母替代. 接下来I行,每行两个字母,表示I可以用这两个字母替…
Tarjan 基础 dfn[i]: 在dfs中该节点被搜索的次序(时间戳). low[i]: 为i或i的子树能够追溯到的最早的栈中节点的次序号. 当 dfn[i] == low[i] 时,为i或i的子树可以构成一个强连通分量. void tarjan(int x) { id++; dfn[x] = id; low[x] = id; vis[x] = ;//是否在栈中 stk[++top] = x;//入栈 ; i = edge[i].nxt){ int temp = edge[i].to; if…
题意:给出一个图,如果这个图一开始就不是强连通图,求出最多加多少条边使这个图还能保持非强连通图的性质. 思路:不难想到缩点转化为完全图,然后找把它变成非强连通图需要去掉多少条边,但是应该怎么处理呢……有人给出这样的答案,找到分量中点数最少的块,把它的所有入边都去掉……好像是对的,但是万一这个块本来就有一个入度怎么办?这个边是不可以删的啊.所以我觉得这种办法是有点的问题的,所以最靠谱的方法还是斌哥他们给出的方法,最后的时候把点分成两个集合x和y,x和y本身都是完全图块,然后让x中的每一个点都指向y…
题目链接:https://cn.vjudge.net/problem/POJ-1904 自己一开始的想法,打算用匈牙利算法实现,找二分图的最大匹配.但是打了打发现,不太好实现.原因如下:匈牙利算法是不停的找增广路.如果这个题用匈牙利算法实现的时候,就是这个地方: bool Find(int t) { ; i<=m; i++) { ) { Exit[i]=; ||Find(net[i])) { net[i]=t; return true; } } } } ,这个是找到合法的就返回,无法把所有的情况…
#include<stdio.h> #include<string.h> #define N 51000 #define inf 1000000000 struct node { int u,v,w,next; }bian[N*2]; int dfn[N],low[N],yong,index,ans[N],visit[N],head[N],stac[N],top,num,n; void init() { yong=0;index=0;top=0;num=0; memset(head…
Going from u to v or from v to u? Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 17383   Accepted: 4660 Description In order to make their sons brave, Jiajia and Wind take them to a big cave. The cave has n rooms, and one-way corridors…
发现自己Tarjan的板子有错误.发现可以用Map直接删去边,Get. 听说std是双连通.LCA.并查集.离线思想.用BIT维护dfs序和并查集维护LCA的动态缩点的好题 #include <iostream> #include <cstring> #include <cstdio> #include <algorithm> #include <vector> #include <map> #include <set>…