• D. Shortest Cycle


    D. Shortest Cycle

    A[i]&A[j]!=0连边,

    求图中最小环

    N>128 时必有3环

    其他暴力跑

    folyd最小环

    #include<bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    #define sc(x) scanf("%I64d",&x);
    #define read(A) for(int i=0;i<n;i++) scanf("%I64d",&A[i]);
    ll A[200005];
    ll B[305][305];
    ll dis[305][305];
    ll N;
    #define inf 1e18
    ll floyd()
    {
        ll MinCost = inf;
        for(int k=1; k<=N; k++)
        {
            for(int i=1; i<k; i++)
                for(int j=i+1; j<k; j++)
                    MinCost = min(MinCost,dis[i][j]+B[i][k]+B[k][j]);
            for(int i=1; i<=N; i++)
                for(int j=1; j<=N; j++)
                    dis[i][j]=min(dis[i][j],dis[i][k]+dis[k][j]);
        }
        if(MinCost==inf)return -1;
        else return MinCost;
    }
     
    int main()
    {
        // ll N;
        sc(N);
        ll _k=1;
        for(int i=1; i<=N; i++)
        {
            sc(A[_k]);
            if(A[_k]!=0)_k++;
        }
        if(_k>=130)
        {
            puts("3");
        }
       
        else
        {
            N=_k-1;
            for(int i=1; i<=N; i++)
            {
                for(int j=1; j<=N; j++)
                {
                    if(i!=j&&(A[i]&A[j]))
                    {
                        B[i][j]=1;
                        dis[i][j]=1;
                    }
                    else if(i==j)
                    {
                        B[i][j]=0;
                        dis[i][j]=0;
                    }
                    else
                    {
                        B[i][j]=inf;
                        dis[i][j]=inf;
                    }
                }
            }
            cout<<floyd()<<'
    ';
     
        }
     
    }
  • 相关阅读:
    MySQL 分组
    MySQL LIKE 子句
    MySQL DELETE 语句
    MySQL UPDATE 查询
    MySQL where 子句
    MySQL 插入数据
    MySQL 查询数据
    MySQL 删除数据表
    MySQL 创建数据表
    MySQL 数据类型
  • 原文地址:https://www.cnblogs.com/liulex/p/11375388.html
Copyright © 2020-2023  润新知