CWING上AC但洛谷0分全WA,下载了数据发现我程序是对的,求调
  • 板块题目总版
  • 楼主Ib_aI
  • 当前回复2
  • 已保存回复2
  • 发布时间2022/12/19 20:34
  • 上次更新2023/10/24 07:10:55
查看原帖
CWING上AC但洛谷0分全WA,下载了数据发现我程序是对的,求调
912382
Ib_aI楼主2022/12/19 20:34
#include<bits/stdc++.h>
using namespace std;
#define int long long
int m,n,s,x,y,dis[3000][3000],q[3000];
void fly()
{
    for(int k = 1; k <= n; k++)
      for(int i = 1; i <= n; i++)
        for(int j = 1; j <= n; j++)
            if(i != j && i != k && k != j && dis[i][k] + dis[k][j] < dis[i][j])
              dis[i][j] = dis[i][k] + dis[k][j];
}
signed main()
{
    memset(dis,0x3f,sizeof(dis));
    scanf("%lld%lld",&m,&n);
    for(int i = 1;i <= n;i++) dis[i][i] = 0;
    while(m--)
    {
        int a,b = 0;
        char p;
        while(scanf("%lld%c",&a,&p) > 0)
        {
            q[++b] = a;
            if(p == '\n') break;
        }
        for(int j = 1; j <= b; j++)
            for(int k = j + 1; k <= b; k++)
                if(j != k && q[j] != 0)
                    dis[q[j]][q[k]] = 1;
        memset(q,0,sizeof(q));
    }
    fly();
    if(dis[1][n] < 100000) printf("%lld",dis[1][n] - 1);
    else printf("NO");
    return 0;
}

题目链接:https://www.luogu.com.cn/problem/P5767

2022/12/19 20:34
加载中...