链接: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++;
}
}
}