P7646 [COCI 2012/2013 #5] HIPERCIJEVI题解

P7646 [COCI 2012/2013 #5] HIPERCIJEVI

题目描述

在遥远的星系中,最快的运输方式是超级管道,它们将 K K K 个站台连接在一起。从站台 1 1 1 到达站台 N N N 最少需要经过多少个站台?

输入格式

第一行,三个整数 N , K , M N,K,M N,K,M,分别表示站台数,每根超级管道连接的站台数和超级管道数。

接下来 M M M 行,每行 K K K 个正整数,表示这跟超级管道连接的站台编号。

输出格式

一行,一个正整数,表示最少需要经过的站台数,如果到达不了站台 N N N ,则输出 -1

输入输出样例 #1

输入 #1

9 3 5
1 2 3
1 4 5
3 6 7
5 6 7
6 8 9

输出 #1

4

输入输出样例 #2

输入 #2

15 8 4
11 12 8 14 13 6 10 7
1 5 8 12 13 6 2 4
10 15 4 5 9 8 14 12
11 12 14 3 5 6 1 13

输出 #2

3

说明/提示

【样例解释#1】

有两种方法从站台 1 1 1 走到站台 9 9 9

1 ⇒ 3 ⇒ 6 ⇒ 9 1\Rightarrow 3\Rightarrow 6\Rightarrow 9 1369 1 ⇒ 5 ⇒ 6 ⇒ 9 1\Rightarrow 5\Rightarrow 6\Rightarrow 9 1569

共经过了 4 4 4 个站台,可以证明这是经过站台最少的情况。


【数据范围】

对于 100 % 100\% 100% 的数据, 1 ≤ N ≤ 10 5 1\le N\le 10^5 1N105 1 ≤ K , M ≤ 1000 1\le K,M\le 1000 1K,M1000


【说明】

本题分值按 COCI 原题设置,满分 120 120 120

题目译自 COCI2012~2013 CONTEST#5 T4 HIPERCIJEVI

思路

将每个超级管道当成点即可。

代码见下

#include<bits/stdc++.h>
using namespace std;
int n,k,m,a[1005][1005],f[105005],g[1005][1005],op=1e9+7;
vector<int> v[105005];
queue<int> q;
int main(){
	cin>>n>>k>>m;
    for(int o=1;o<=m;o++){
        for(int i=1;i<=k;i++){
            cin>>a[o][i];
            v[a[o][i]].push_back(o);
            if(a[o][i]==1){
                q.push(o);
            }
        }
    }
    memset(f,62,sizeof(f));
    for(int i=1;i<=n;i++){
        for(int j=0;j<v[i].size();j++){
            for(int k=0;k<v[i].size();k++){
                g[v[i][j]][v[i][k]]=1;
            }  
            if(i==1){
                f[v[i][j]]=1;
            }
        }
    }
    while(q.size()!=0){
        int u=q.front();
        q.pop();
        for(int i=1;i<=m;i++){
            if(g[u][i]==1){
                if(f[i]>=f[u]+1+1){
                    f[i]=f[u]+1;
                    q.push(i);
                }
            }
        }
    }
    for(int i=0;i<v[n].size();i++){
        op=min(op,f[v[n][i]]);
    }
    if(op>=1e9){
        cout<<-1<<endl;
        return 0;
    }
    cout<<op+1<<endl;
	return 0;
}
posted @ 2026-01-28 21:18  bz02_2023f2  阅读(2)  评论(0)    收藏  举报  来源