关注
dijskra, 时间相同时, 优先选蛋糕最多的。 #include <stdio.h>
#include <string.h>
#include <vector>
#include <iostream>
#include <queue>
using namespace std;
const int n = 10000 + 10;
const int m = 2000000 + 10;
typedef long long ll;
ll a[n];
struct edge
{
int v;
int next;
ll time;
}e[m];
int head[n];
int cnt = 0;
void add(int u, int v, int t)
{
e[cnt].v = v;
e[cnt].time = t;
e[cnt].next = head[u];
head[u] = cnt++;
}
ll times[n];
ll cakes[n];
struct node
{
int fa;
int u;
ll time;
friend bool operator<(const node &a , const node &b)
{
return a.time>b.time; // ascending sort
}
};
priority_queue<node> q;
void dij(int s, int d)
{
node cur;
memset(cakes, 0, sizeof(cakes));
memset(times, -1, sizeof(times));
for(int i = head[s]; i != -1; i = e[i].next)
{
node tmp;
tmp.fa = s;
tmp.u = e[i].v;
tmp.time = e[i].time;
q.push(tmp);
}
cakes[s] = a[s];
times[s] = 0;
int i = 0;
while(!q.empty())
{
i+=1;
cur = q.top();
q.pop();
//没有走过, 或者有更好的走法
if(times[cur.u] == -1 || cur.time < times[cur.u])
{
times[cur.u] = cur.time;
cakes[cur.u] = cakes[cur.fa] + a[cur.u];
}
// 时间相同,选蛋糕更多的
else if(cur.time == times[cur.u])
{
if(cakes[cur.fa] + a[cur.u] > cakes[cur.u])
cakes[cur.u] = cakes[cur.fa] + a[cur.u];
continue;
}
else
{
continue;
}
/* cout << cur.u << " " << cakes[cur.u] << endl; */
for(int i = head[cur.u]; i != -1; i = e[i].next)
{
if(times[e[i].v] != -1 && cur.time + e[i].time > times[e[i].v])
continue;
node tmp;
tmp.fa = cur.u;
tmp.u = e[i].v;
tmp.time = cur.time + e[i].time;
q.push(tmp);
}
}
cout << times[d] << " " << cakes[d] << endl;
}
int main()
{
int n, m, s, d;
cin >> n >> m >> s >> d;
s--;
d--;
for(int i = 0; i < n; ++i)
{
cin >> a[i];
}
int u, v, t;
memset(head, -1, sizeof(head));
for(int i = 0; i < m; ++i)
{
cin >> u >> v >> t;
u--;
v--;
add(u, v, t);
add(v, u, t);
}
dij(s, d);
}
//6 80
查看原帖
点赞 1
相关推荐
牛客热帖
更多
- 1... 签完三方了,分享下我的“反向提问”技巧2.6W
- 2... 大二无实习怎么做到获得一份月薪1.5w+量化的实习和多份大厂核心部门实习的2.1W
- 3... 小红书校招技术岗增2.5倍!课代表来总结一下这场直播吧1.8W
- 4... 出身寒微,却攥住鹅厂的入场券1.5W
- 5... 机械八股之材料力学笔面试难点与常考点整理1.2W
- 6... 那些未曾答上来的硬核面试问题3862
- 7... 银行秋招3208
- 8... 无良二房东受死吧!3019
- 9... 滴滴后端oc面经总结 Java人拿到Go的云原生意向2848
- 10... 能做到吗?字节抖音电商秋招记录2689
正在热议
更多
# 为了求职,我做过的疯狂伪装 #
4488次浏览 69人参与
# 从顶到拉给所有面过的公司评分 #
1858次浏览 38人参与
# 小红书校招直播来了 #
80906次浏览 472人参与
# 聊聊这家公司值得去吗 #
539810次浏览 3609人参与
# 产品每日一题 #
59346次浏览 604人参与
# 秋招报数:你投了多少家公司? #
17255次浏览 165人参与
# 职场破冰,你们都聊什么? #
2009次浏览 39人参与
# 你觉得早上几点上班合适? #
81013次浏览 329人参与
# 你面试被问到过哪些不会的问题? #
10643次浏览 470人参与
# 为什么国企只招应届生 #
196981次浏览 1212人参与
# 电网笔面经互助 #
45118次浏览 427人参与
# 安克创新求职进展汇总 #
46951次浏览 496人参与
# 工作压力大怎么缓解 #
103415次浏览 1040人参与
# 机械笔面试考察这些知识点 #
9067次浏览 89人参与
# 实习要如何选择和准备? #
113055次浏览 1431人参与
# 秋招的嫡长offer #
16318次浏览 160人参与
# 上班摸鱼,你都在干些什么? #
3790次浏览 66人参与
# tplink提前批进度交流 #
202129次浏览 1486人参与
# 嵌入式岗知多少 #
52909次浏览 524人参与
# 深信服求职进展汇总 #
221328次浏览 1751人参与
# 学历or实习经历,哪个更重要 #
184198次浏览 994人参与