zoukankan      html  css  js  c++  java
  • ZOJ 1967 POJ 2570 Fiber Network

    枚举起点和公司,每次用DFS跑一遍图,预处理出所有的答案。询问的时候很快就能得到答案。

    #include<cstdio>
    #include<cmath>
    #include<cstring>
    #include<vector>
    #include<algorithm>
    using namespace std;
    
    int jz[300][300][30];
    int ans[300][300][30];
    int flag[300];
    vector<int>ljb[300];
    int n;
    int S,T,G;
    
    void DFS(int now)
    {
        ans[S][now][G]=1;
        int i;
        for(i=0; i<ljb[now].size(); i++)
        {
            if(jz[now][ljb[now][i]][G]==1&&flag[ljb[now][i]]==0)
            {
                flag[ljb[now][i]]=1;
                DFS(ljb[now][i]);
            }
        }
    }
    
    int main()
    {
        int i,j,k;
        while(~scanf("%d",&n))
        {
    
            if(n==0) break;
            for(i=0; i<=n; i++) ljb[i].clear();
            memset(jz,0,sizeof(jz));
            memset(ans,0,sizeof(ans));
            while(1)
            {
                int u,v;
                char s[1000];
                scanf("%d%d",&u,&v);
                if(u==0&&v==0) break;
                scanf("%s",s);
                ljb[u].push_back(v);
                for(i=0; s[i]; i++)
                    jz[u][v][s[i]-'a']=1;
            }
            for(i=1; i<=n; i++)
            {
                for(j=0; j<26; j++)
                {
                    memset(flag,0,sizeof(flag));
                    S=i;
                    G=j;
                    DFS(S);
                }
            }
            while(1)
            {
                int u,v;
                scanf("%d%d",&u,&v);
                if(u==0&&v==0) break;
                int i;
                int sc=0;
                for(i=0; i<26; i++)
                {
                    if(ans[u][v][i]==1)
                    {
                        sc=1;
                        printf("%c",i+'a');
                    }
                }
                if(sc==0) printf("-");
                printf("
    ");
            }
            printf("
    ");
        }
        return 0;
    }
  • 相关阅读:
    SpringBoot使用Swagger2实现Restful API
    SpringBoot返回json和xml
    SpringBoot定时任务
    SpringBoot+Jpa+MySql学习
    SpringBoot+Mybatis+MySql学习
    linux安装jdk
    linux下安装mysql
    利用nginx,腾讯云免费证书制作https
    SpringBoot使用数据库
    SpringBoot的国际化使用
  • 原文地址:https://www.cnblogs.com/zufezzt/p/4677108.html
Copyright © 2011-2022 走看看