关于懒癌
  • 板块学术版
  • 楼主SunXiaoping
  • 当前回复92
  • 已保存回复92
  • 发布时间2021/4/20 20:53
  • 上次更新2023/11/5 00:18:32
查看原帖
关于懒癌
478528
SunXiaoping楼主2021/4/20 20:53

http://115.236.49.55:83/attachment/7502/problem.pdf

#include<bits/stdc++.h>
using namespace std;
inline long long read()
{
   long long s=0,w=1;
   char ch=getchar();
   while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
   while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();
   return s*w;
}
inline void write(long long x)
{
    if(x<0) putchar('-'),x=-x;
    if(x>9) write(x/10);
    putchar(x%10+'0');
}
struct node
{
    long long v,w,next;
}e[100005];
long long eid=1,head[100005];
inline void insert(long long u,long long v,long long w)
{
    e[eid].v=v;
    e[eid].w=w;
    e[eid].next=head[u];
    head[u]=eid++;
}
long long flag=0,n,m,c,u,v,w,dp[3005][3005];
inline long long dfs(long long u,long long fa,long long step)
{
    if(u==v)
    {
        flag=1;
        return step;
    }
    for(long long i=head[u];i;i=e[i].next)
    {
        long long v=e[i].v;
        if(v!=fa)
        {
            if(flag)
            {
                return step;
            }
            return dfs(v,u,step+1);
        }
    }
}
int main()
{
    n=read();
    m=read();
    c=read();
    for(long long i=0;i<=200;i++)
    {
        for(long long j=0;j<=200;j++)
        {
            dp[i][j]=0x3f3f3f3f;
        }
    }
    for(long long i=1;i<=m;i++)
    {
        u=read();
        v=read();
        w=read();
        dp[u][v]=w;
        insert(u,v,w);
    }
    for(long long k=1;k<=n;k++)
    {
        for(long long i=1;i<=n;i++)
        {
            if(i!=k)
            for(long long j=1;j<=n;j++)
            {
                if(i!=j&&j!=k)
                {
                    dp[i][j]=min(dp[i][j],dp[i][k]+dp[k][j]);
                }
            }
        }
    }
    for(long long i=1;i<=c;i++)
    {
        u=read();
        v=read();
        if(dp[u][v]!=0x3f3f3f3f)
        {
            write(dp[u][v]);
            putchar(' ');
            flag=0;
            write(dfs(u,-1,0));
        }
        else
        {
            printf("Windows is the best!");
            continue;
        }
        puts("");
    }
}

哪错

2021/4/20 20:53
加载中...