您的位置:首页 > Web前端 > Node.js

Least Crucial Node UVALive - 7456 【】

2017-08-23 11:44 836 查看




题目要求:求联通图   序号最小的最大割点。

解决方案: 枚举每一个点(除了起点),每一次从头开始搜。

比较出 去掉哪个点 时 能连的最少

一些新stl 知识点

bitset :
百度百科

auto

#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <iostream>
#include <algorithm>
#include <vector>
#include <bitset>
#define ms(x) memset(x,0,sizeof(x))
using namespace std;
const int maxn = 110;
int n, m, sink;
vector<int> g[maxn];
bitset<maxn> vis;
void dfs(int cur)
{
vis[cur] = true;
for(auto i:g[cur])
{
if(!vis[i])
dfs(i);
}
}
int main()
{
while( scanf("%d",&n)&&n )
{
for(int i=1;i<=n;i++)
{
g[i].clear();
}
cin>>sink>>m;
for(int i=0;i<m;i++)
{
int u,v;
cin>>u>>v;
g[u].push_back(v);
g[v].push_back(u);
}
int ans = -1;
int cnt = n+1;
for(int i=1;i<=n;i++)
{
if(i == sink) continue;
vis.reset();
vis[i] = true;
dfs(sink);
int sum = vis.count();
if( sum == n) continue;
if(cnt > sum)
{
ans = i;
cnt = sum;
}
}
cout<<ans<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: