zoukankan      html  css  js  c++  java
  • HRBUST2048 Thrall’s Dream 题解报告

    题目传送门

    【题目大意】

    令人绝望的超长英文体面……然而实际上题意很简单

    给出$n$个点和$m$条有向边,判断这个图是否连通,连通的定义是对于任意两个点$x,y$,满足有路径从$x$到$y$或有路径从$y$到$x$。

    【思路分析】

     这题还是很简单的啦,连好边之后从每个点出发$dfs$一遍,如果连通就记录,最后判断一下就行了,复杂度$O(N)$。

    【代码实现】

     1 #include<cstdio>
     2 #include<iostream>
     3 #include<cstring>
     4 #include<algorithm>
     5 #include<cmath>
     6 #define g() getchar()
     7 #define rg register
     8 #define go(i,a,b) for(rg int i=a;i<=b;i++)
     9 #define back(i,a,b) for(rg int i=a;i>=b;i--)
    10 #define db double
    11 #define ll long long
    12 #define il inline
    13 #define pf printf
    14 #define mem(a,b) memset(a,b,sizeof(a))
    15 using namespace std;
    16 int fr(){
    17     int w=0,q=1;
    18     char ch=g();
    19     while(ch<'0'||ch>'9'){
    20         if(ch=='-') q=-1;
    21         ch=g();
    22     }
    23     while(ch>='0'&&ch<='9') w=(w<<1)+(w<<3)+ch-'0',ch=g();
    24     return w*q;
    25 }
    26 const int N=2002,M=10002;
    27 int T,n,m,head[N];
    28 bool d[N][N];
    29 struct edge{
    30     int to,next;
    31 }e[M];
    32 il void work(rg int from,rg int now){
    33     d[from][now]=1;
    34     for(rg int i=head[now];i;i=e[i].next)
    35         if(!d[from][e[i].to]) work(from,e[i].to);
    36     return;
    37 }
    38 int main(){
    39     //freopen("","r",stdin);
    40     //freopen("","w",stdout);
    41     T=fr();
    42     go(t,1,T){
    43         bool ans=1;
    44         n=fr();m=fr();
    45         mem(head,0);mem(d,0);
    46         go(i,1,m){
    47             rg int u=fr(),v=fr();
    48             e[i].next=head[u];
    49             e[i].to=v;
    50             head[u]=i;
    51         }
    52         go(i,1,n) work(i,i);
    53         go(i,1,n) go(j,1,n) if(!d[i][j]&&!d[j][i]) {ans=0;break;}
    54         if(ans) pf("Case %d: Kalimdor is just ahead
    ",t);
    55         else pf("Case %d: The Burning Shadow consume us all
    ",t);
    56     }
    57     return 0;
    58 }
    代码戳这里
  • 相关阅读:
    福大软工 · BETA 版冲刺前准备(团队)
    福大软工 · 第十一次作业
    Alpha 冲刺 (9/10)
    Alpha 冲刺 (8/10)
    Alpha 冲刺 (7/10)
    Alpha 冲刺 (6/10)
    Alpha 冲刺 (5/10)
    Alpha 冲刺 (4/10)
    福大软工1816 · 团队现场编程实战(抽奖系统)
    阿里八八β阶段Scrum(5/5)
  • 原文地址:https://www.cnblogs.com/THWZF/p/11422895.html
Copyright © 2011-2022 走看看