zoukankan      html  css  js  c++  java
  • 戏game

    这里写图片描述
    这里写图片描述

    按照正解的做法,我只得了80。

    首先我们要明确这是一张竞赛图。
    然后有一个点,在竞赛涂上如果存在环,那么就一定有三元的环。


    这里写图片描述
    这样找到的第一个三元环是1->3->4->1

    观察一下图,看一下代码。嘻嘻
    shipinjiangjie

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<string>
    #include<vector>
    #include<algorithm> 
    #define N 5009
    using namespace std;
    int st[N],top,cst[N],pos[N],map[N][N];
    int vis[N],len,n;
    char s[N];
    bool dfs(int x)
    {
        vis[x]=1,st[++top]=x,pos[x]=top;
        for(int i=1;i<=n;i++)
        if(map[x][i])
        {
            if(vis[i]==1)
            {
                len=top-pos[i]+1;
                for(int j=0;j<len;j++) cst[j+1]=st[pos[i]+j]; 
                return true;
            }
            else if(vis[i]==0)
            {
                bool found=dfs(i);
                if(found) return true;
            }
        }
        top--;vis[x]=2;
        return false;
    }
    void answer()
    {
        for(int i=2;i<len;i++)
        if(map[cst[i+1]][cst[1]]){
            printf("%d %d %d",cst[1],cst[i],cst[i+1]);
        }
    }
    int main()
    {
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
        {
            scanf("%s",s);
            for(int j=0;j<strlen(s);j++)
            map[i][j+1]=(s[j]=='1');    
        }
        for(int i=1;i<=n;i++)
        {
            if(!vis[i]){
                bool found=dfs(i);
                if(found)
                {
                    answer();
                    return 0;
                }
            }
        }   
        printf("-1
    ");
        return 0;
    }
  • 相关阅读:
    java-反射
    java-异常
    Jmeter-逻辑控制器
    Jmeter-断言
    java-函数传参
    怎么测试一个杯子
    java+selenium3-元素定位
    java+selenium3-简介及环境搭建
    微软企业库5.0 使用举例
    数据库连接字符串ConnectionString 中的关键字值释义
  • 原文地址:https://www.cnblogs.com/dfsac/p/7587819.html
Copyright © 2011-2022 走看看