lightoj1063【求割点】
来源:互联网 发布:nginx lua redis 灰度 编辑:程序博客网 时间:2024/05/17 09:08
题意不懂啊。。。。。。
只知道求割点。
#include <bits/stdc++.h>using namespace std;typedef long long LL;typedef unsigned long long ULL;typedef pair<int,int>PII;const double eps=1e-5;const double pi=acos(-1.0);const int mod=1e9+7;const int INF=0x3f3f3f3f;const int N=1e4+10;const int M=2e4+10;struct Edge{ int to; int next;};Edge q[M*2];int head[M*2],tol,n,m;int dfn[N],low[N];int ind,top;bool flag[N],vis[N];void Tarjan(int u,int pre){ int v; int son=0; low[u]=dfn[u]=ind++; vis[u]=true; for(int i=head[u];i!=-1;i=q[i].next) { v=q[i].to; if(v==pre) continue; if(!dfn[v]) { son++; Tarjan(v,u); low[u]=min(low[v],low[u]); if(u!=pre&&low[v]>=dfn[u]) flag[u]=true; } else low[u]=min(low[u],dfn[v]); } if(pre==u&&son>1) flag[u]=true;}void init(){ tol=0; memset(head,-1,sizeof(head));}void add(int u,int v){ q[tol].to=v; q[tol].next=head[u]; head[u]=tol++;}int main(){ int T,cas=1;//freopen("D:\\in.txt","r",stdin); scanf("%d",&T); while(T--) { scanf("%d%d",&n,&m); init(); while(m--) { int u,v; scanf("%d%d",&u,&v); add(u,v); add(v,u); } memset(dfn,0,sizeof(dfn)); memset(low,0,sizeof(low)); memset(flag,0,sizeof(flag)); memset(vis,0,sizeof(vis)); ind=1; int ans=0; Tarjan(1,1); for(int i=1;i<=n;i++) if(flag[i]) { // printf("%d\n",i); ans++; } printf("Case %d: %d\n",cas++,ans); } return 0;}
0 0
- lightoj1063【求割点】
- lightoj1063 Ant Hills
- 求割点
- 求割点
- 求割点
- 求割点
- 求割点
- 求割点
- 求割点
- POJ1523求割点
- 求割点个数
- tarjan求割点
- 求割点模版
- Tarjan求割点
- Tarjan求割点
- UVA 315 Network 求割点、套版题 求割点
- POJ 1523 SPF //求割点
- POJ1144 Network 求割点
- SpringMvc教程(三)--核心流程图
- 人脸对齐:Face Alignment at 3000 FPS via Regressing Local Binary Features
- 数据类型(3)
- ROS学习历程(2)-----ROS的文件系统
- Android 音频播放带自动缓存(边播放,变下载)
- lightoj1063【求割点】
- Unity3D游戏开发之Unity与Android交互调用研究
- snprintf函数用法 .
- SNMP V1 V2 V3版本的联系和区别
- AndroidStudio 快速集成 秒级编译工具Freeline
- dede表单提交出现“数据校验不对,程序返回”的解决办法 dede_fields value值
- Excel中如何将一个Excel工作表的数据按一列的关键字拆分成多个工作表
- ReactiveCocoa学习笔记
- JavaScript的解析器是个什么东西