Codeforces 144D: Missile Silos

来源:互联网 发布:筑龙投标软件下载 编辑:程序博客网 时间:2024/05/18 12:29

链接:http://codeforces.com/problemset/problem/144/D

题意:题目给你一个无向边权图,然后给你一个点s,和长度l,问距离点s长度为l的点有多少,这些点可以在图中的点上也可以在边上。

题解:先做遍最短路,然后对于每一条边,这么判断就行了(不想解释了。。。

for (int u = 0; u < n; u++) {if (dist[u] == l)res++;for (Pair pair : adj[u]) {int v = pair.first;int w = pair.second + dist[u];if (dist[u] < l && w > l) {int ww = w - l + dist[v];if (ww > l || (ww == l && u < v))res++;}}}