zfchna 2022-08-29 22:11 采纳率: 50%
浏览 78
已结题

最短路问题,牛客比赛

问题遇到的现象和发生背景

img


img

题目链接:https://ac.nowcoder.com/acm/contest/39100/F

问题相关代码,请勿粘贴截图
#include<iostream>
#include<cstring>
#include<algorithm>
#include<vector>
#include<map>
#include<cmath>
#include<queue>
#define int long long

using namespace std;
const int N=200010,mod=998244353;

int e[N],w[N],ne[N],h[N],idx,shu[N],d[N];

void add(int a,int b,int c)
{
    e[idx]=b,w[idx]=c,ne[idx]=h[a],h[a]=idx++;
}

void doo()
{
    memset(d,0x3f,sizeof d);
    priority_queue<pair<int,int>,vector<pair<int,int>>,greater<pair<int,int>> >q;
    d[1]=0;
    q.push({0,1});
    while(q.size())
    {
        int t=q.top().second;
        q.pop();
        for(int i=h[t];i!=-1;i=ne[i])
        {
            int j=e[i];
            if(d[j]>d[t]+w[i])
            {
                d[j]=d[t]+w[i];
                q.push({d[j],j});
            }
        }
    }
}

signed main()
{
    int n,m;
    cin>>n>>m;
    memset(h,-1,sizeof h);
    int x,y,z;
    cin>>x>>y>>z;
    for(int i=1;i<=n;i++)cin>>shu[i];
    for(int i=1;i<=m;i++)
    {
        int u,v;
        cin>>u>>v;
        if(shu[u]==shu[v])add(u,v,min(x,y+z)),add(v,u,min(x,y+z));
        else add(u,v,min(y,x+z)),add(v,u,min(y,x+z));
    }
    doo();
    cout<<d[n]<<endl;
}

运行结果及报错内容

不明白自己的代码为啥错误,请帮忙看一看

  • 写回答

1条回答 默认 最新

  • 这次真没糖 2022-08-30 18:24
    关注

    目前看代码明面上的错误有:

    1. N定义小了,是双向路,应该再乘以2.
    2. 最短路里面没有标记访问的点,应该再开一个vis数组记录
    3. 数据量达到了2e5级别了,用scanf会明显快很多
    4. dis数组类型应该是long long,初始化用0x7f比较好

    其余的需要运行一下了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 9月7日
  • 已采纳回答 8月30日
  • 赞助了问题酬金10元 8月30日
  • 创建了问题 8月29日

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。