• HDU 4324 Contest 3


    直接DFS即可

    #include <iostream>
    #include <string.h>
    #include <algorithm>
    #include <cstdio>
    
    using namespace std;
    
    bool vis[2010];
    
    char map[2010][2010];
    
    struct e{
    	int u,v;
    	int next;
    }edge[2050000];
    int head[2010],tot;
    
    void addedge(int u,int v){
    	edge[tot].u=u;
    	edge[tot].v=v;
    	edge[tot].next=head[u];
    	head[u]=tot++;
    }
    
    bool dfs(int now,int parent){
    	vis[now]=true;
    	for(int e=head[now];e!=-1;e=edge[e].next){
    		if(vis[edge[e].v]){
    			if(map[edge[e].v][parent]=='1')
    			return true;
    		}
    		else{
    			if(dfs(edge[e].v,now)){
    				return true;
    			}
    		}
    	}
    	return false;
    }
    
    int main (){
    	int T,n,kase=0;
    	scanf("%d",&T);
    	while(T--){
    		scanf("%d",&n);
    		getchar();
    		memset(head,-1,sizeof(head));
    		memset(vis,false,sizeof(vis));
    		tot=0;
    		for(int i=0;i<n;i++){
    			gets(map[i]);
    			for(int j=0;j<n;j++){
    				if(map[i][j]=='1'){
    					addedge(i,j);
    				}
    			}
    		}
    		bool flag=false;
    		for(int i=0;i<n;i++){
    			if(!vis[i]){
    		 		flag=dfs(i,-1);
    				if(flag)
    				break;
    			}
    		}
    		if(flag) printf("Case #%d: Yes
    ",++kase);
    		else printf("Case #%d: No
    ",++kase);
    	}
    	return 0;
    }
    

      

  • 相关阅读:
    第02组 团队项目-需求分析报告
    团队项目-选题报告
    第二次结对编程作业
    第2组 团队展示
    Alapha冲刺(3/6)
    Alpha(2/6)
    Alpha冲刺(1/6)
    第2组 团队Git现场编程实战
    团队项目-需求分析报告
    团队项目-选题报告
  • 原文地址:https://www.cnblogs.com/jie-dcai/p/4085830.html
Copyright © 2020-2023  润新知