社区讨论

关于懒癌

学术版参与者 25已保存回复 92

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
92 条
当前快照
1 份
快照标识符
@loceux4v
此快照首次捕获于
2023/10/30 12:39
2 年前
此快照最后确认于
2023/11/05 00:18
2 年前
查看原帖
http://115.236.49.55:83/attachment/7502/problem.pdf
CPP
#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("");
    }
}
哪错

回复

92 条回复,欢迎继续交流。

正在加载回复...