@[n_blutea](/user/588080) 答案可以取到1e9
by 寒烟冷浅暮殇 @ 2024-03-11 12:11:17
@[寒烟冷浅暮殇](/user/28397) 把限制条件去掉就变成零分了
by n_blutea @ 2024-03-11 12:14:16
@[n_blutea](/user/588080) 我的意思是你可以把无穷大调大点,比如1001001001
by 寒烟冷浅暮殇 @ 2024-03-11 12:17:29
可以把定义里面的1e9调大一点
by ccf666 @ 2024-03-11 12:45:34
@[寒烟冷浅暮殇](/user/28397)
谢谢,但是我改成1e10还是全wa了
```cpp
#include<bits/stdc++.h>
using namespace std;
void dijkstra(vector<vector<pair<long long,long long>>>& graph,vector<long long>&dis,long long start)
{
priority_queue<pair<long long, long long>, vector<pair<long long, long long>>, greater<pair<long long, long long>>> pq;
dis[start] = 0;
pq.push(make_pair(0, start));
while (!pq.empty())
{
long long u = pq.top().second;
long long dist = pq.top().first;
pq.pop();
if (dist > dis[u]) continue;
for (int i = 0; i < graph[u].size(); i++)
{
long long v = graph[u][i].first;
long long weight = graph[u][i].second;
if (dis[v] > dis[u] + weight) {
dis[v] = dis[u] + weight;
pq.push(make_pair(dis[v], v));
}
}
}
}
int main()
{
int n, m, s;
cin >> n >> m >> s;
vector<long long> dis(n + 100, 1e10);
vector < vector<pair<long long, long long>>> graph(n + 100);
for (int i = 1; i <= n; i++)
{
long long x, y, w;
cin >> x >> y >> w;
graph[x].push_back({ y,w });
}
dijkstra(graph,dis,s);
for (int i = 1; i <= n; i++)
{
cout << dis[i] << " ";
}
return 0;
}
```
by n_blutea @ 2024-03-11 19:35:40
@[n_blutea](/user/588080) 你再看看你读了多少条边
by 寒烟冷浅暮殇 @ 2024-03-11 20:06:11
@[寒烟冷浅暮殇](/user/28397) 过了,十分感谢,关注了
by n_blutea @ 2024-03-11 20:21:59