hdu4324 Triangle LOVE【tarjan强连通分量基础题】
2015-11-09 21:27
441 查看
输入输出没整明白也是醉了==
还有 能不能细心点儿???这要是比赛因为内存开大了WA一次冤不冤??
还有 能不能细心点儿???这要是比赛因为内存开大了WA一次冤不冤??
/********** hud4324 **********/ #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int M=4e6+10,N=2e3+10; int head ,ed; char str[2006][2006]; struct node{ int to,next; }edge[M]; int sta ,vis ,low ,dfn ,top; //,out void init(){ ed=0; memset(head,-1,sizeof(head)); memset(edge,0,sizeof(edge)); memset(sta,0,sizeof(sta)); } void addedge(int a,int b){ edge[ed].to=b; edge[ed].next=head[a]; head[a]=ed++; } void tarbfs(int k,int cnt,int &num){ vis[k]=1; low[k]=cnt; dfn[k]=cnt; sta[top++]=k; for(int i=head[k];i>-1;i=edge[i].next){ if(vis[edge[i].to]==0) tarbfs(edge[i].to,++cnt,num); if(vis[edge[i].to]==1) low[k]=min(low[k],low[edge[i].to]); } if(dfn[k]==low[k]){ ++num; while(top>0&&sta[top]!=k){ //printf("%d ",sta[top]); top--; low[sta[top]]=num; vis[sta[top]]=2; }// } } int tarjan(int n){ int num=0,cnt=1; top=0; memset(vis,0,sizeof(vis)); memset(low,0,sizeof(low)); for(int i=1;i<=n;i++){ if(vis[i]==0) tarbfs(i,cnt,num); } return num; } int main() { // freopen("cin.txt","r",stdin); int n,m,t,b; scanf("%d",&t); b=1; while(t--){ int a; init(); scanf("%d",&n); for(int i=1;i<=n;i++) scanf("%s",str[i]+1); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) if(str[i][j]=='1') addedge(i,j); /*for(int i=1;i<=ed;i++) { for(int k=head[i];k!=-1;k=edge[k].next) printf("u=%d v=%d ",i,edge[k].to); printf("\n"); }*/ int num=tarjan(n); //printf("%d ",num); printf("Case #%d: ",b++); if(num>=1&&num!=n) puts("Yes"); else puts("No"); } return 0; }
相关文章推荐
- 程序员的支配力 (上)
- HDOJ 5240 Exam (贪心)
- Java-微信支付-接口配置信息验证-配置代码和技巧
- UITextField 全面的介绍
- Beaglebone Black(9)运用Python来发邮件
- 树形dp
- ROS(robot OS)学习 (N)
- 《leetCode》:First Missing Positive
- Java普通方法与static方法的多态
- BLE4.0配对绑定过程的底层剖析
- C++ 在继承中虚函数、纯虚函数、普通函数,三者的区别
- hdoj 1406 完数
- 模拟操作系统进程调度算法
- oracle存储过程中使用其他用户的表或视图
- myeclipse maven web项目创建
- WordPress下载管理插件
- Eclipse使用技巧收集
- 联想一键还原系统安装流程记录
- python编程环境搭建
- UCI机器学习数据库