4 条题解

  • 1
    @ 2023-2-4 11:50:56
    #include <string.h>
    #define inf 9999999
    #define min(x,y) x>y?y:x
    
    int m,n;
    int a[505];
    int e[505][505];
    
    int main()
    {
        scanf("%d%d",&amp;m,&amp;n);
        
        for(int i=1;i<=n;i++)
            for(int j=1;j<=n;j++)
                if(i==j) e[i][j]=0;
                else e[i][j]=inf;
        
        for(int i=0;i<m;i++){
            int k=1;
            while(1){
                char ch;
                scanf("%d",&amp;a[k++]);
                ch=getchar();
                if(ch=='\n')
                    break;
            }
            for(int i=1;i<k-1;i++)
                for(int j=i+1;j<k;j++)
                        e[a[i]][a[j]]=1;
        }
    
        
        for(int k=1;k<=n;k++)
            for(int i=1;i<=n;i++)
                for(int j=1;j<=n;j++)
                    if(e[i][j]>e[i][k]+e[k][j])
                        e[i][j]=e[i][k]+e[k][j];
        
        if(e[1][n]>=inf)
            printf("NO\n");
        else
            printf("%d",e[1][n]-1);
    
        
        return 0;
    }
    
    
    

    信息

    ID
    304
    时间
    1000ms
    内存
    16MiB
    难度
    6
    标签
    递交数
    126
    已通过
    36
    上传者