Tomcat手工搭建Jsp和Servlet程序
标签:blog class c code tar a
题意:求一个无向图的,去掉两个不同的点后最多有几个连通分量。
思路:枚举每个点,假设去掉该点,然后对图求割点后连通分量数,更新最大的即可。算法相对简单,但是注意几个细节:
1:原图可能不连通。
2:有的连通分量只有一个点,当舍去该点时候,连通分量-1;
复习求割点的好题!
#include
#include
#include
using namespace std;
int n,m;
vector >e(10010);
int dfn[5010];int low[5010];int vis[5010];
int times=0;
int subset[5010];
int root=0;
int rf=0;
int son=0;
void tarjan(int u,int fa) //无向图tarjan记录父亲
{
if(u==rf)return; //是被枚举的点,舍去(从图中删去)。
dfn[u]=low[u]=times++;
for(int i=0;imaxson)maxson=son; //求出每个连通分量的根的最大的son
son=0; //每个连通分量要更新son
}
}
if(e[i].size()==0)scc--; // 注意点!!!:该连通分量只有一个点!舍去的话就没了。
for(int ii=0;iimaxx)maxx=scc+subset[ii]+1-1;
}
if(scc+maxson-1>maxx)maxx=maxson+scc-1;
for(int j=0;j
Tomcat手工搭建Jsp和Servlet程序,搜素材,soscw.com
Tomcat手工搭建Jsp和Servlet程序
标签:blog class c code tar a
原文地址:http://blog.csdn.net/jerry_1126/article/details/26171057
评论