zoukankan      html  css  js  c++  java
  • 2017轻工业校赛 hipercijevi https://acm.zzuli.edu.cn/zzuliacm/problem.php?id=2130

    给你m个管道  每个管道链接k个点  每两个点的距离都是1,因为数据太大,所以我们要找到代替   也就是再找一个是让其与之相连,本来两点距离为1后变为2;

    数据太大用邻接表存   用vector会超时  相对而言 还是比较水的bfs  可惜比赛的时候根本没有看到  也就没有思考

    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #include<iostream>
    #include<queue>
    #include<map>
    #include<vector>
    #include<math.h>
    using namespace std;
    #define INF 0x3f3f3f3f
    #define LL long long
    #define N 1001009
    int w[N],k,aa[N];
    struct poiw
    {
        int f,v;
    }a[N<<1];
    void add(int e,int f)
    {
        a[k].f=f;
        a[k].v=aa[e];
        aa[e]=k++;
    }
    struct node
    {
        int x,t;
    };
    int q(int s,int n)
    {
        memset(w,0,sizeof(w));
        queue<node>Q;
        node q,p;
        q.x=s;q.t=0;
        Q.push(q);
        w[s]=1;
        if(n==1) return 1;
        while(Q.size())
        {
            q=Q.front();Q.pop();
    
            for(int i=aa[q.x];i!=-1;i=a[i].v)
            {
                p.x=a[i].f;
                p.t=q.t+1;
                if(!w[p.x])
                {
                    w[p.x]=1;
                    Q.push(p);
                    if(p.x==n)
                        return p.t;
                }
            }
        }
        return -4;
    }
    int main()
    {
        int T,n,m,kk;
        scanf("%d",&T);
        while(T--)
        {
            k=0;
            memset(aa,-1,sizeof(aa));
            scanf("%d%d%d",&n,&kk,&m);
            int e;
            for(int i=0;i<m;i++)
            {
                for(int j=0;j<kk;j++)
                {
                    scanf("%d",&e);
                    add(e,n+1+i);
                    add(n+1+i,e);
                }
            }
            printf("%d
    ",q(1,n)/2+1);
        }
        return 0;
    }
  • 相关阅读:
    中国电信翼聊学习(概述)
    Silverlight应用程序的本地通讯
    XmlSerialize构造函数发生错误FileNotFoundException
    使用 .NET Framework 中的函数式编程技术
    月份统计精简Sql
    poj 2421 Constructing Roads
    POJ 3026 Borg Maze
    POJ 1258 AgriNet
    zoj 1718 Building a Space Station
    zoj 1203 Swordfish
  • 原文地址:https://www.cnblogs.com/a719525932/p/6726354.html
Copyright © 2011-2022 走看看