题目:Link。
代码:
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 505, MAXM = 10005;
int t, n, m, k, x, y, z, tot;
int dis[MAXN], u[MAXN], v[MAXN], w[MAXN];
int main() {
// freopen("1.in", "r", stdin);
// freopen("1.out", "w", stdout);
cin >> t;
while (t--) {
cin >> n >> m >> k;
while (m--) {
cin >> x >> y >> z;
u[++tot] = x; v[tot] = y; w[tot] = z;
u[++tot] = y; v[tot] = x; w[tot] = z;
}
while (k--) {
cin >> x >> y >> z;
u[++tot] = x; v[tot] = y; w[tot] = -z;
}
memset(dis, 0x7f, sizeof(dis));
dis[1] = 0;
string ans = "NO";
for (int i = 1; i < n; i++)
for (int j = 1; j <= tot; j++)
dis[v[i]] = min(dis[v[i]], dis[u[i]] + w[j]);
for (int i = 1; i <= tot; i++)
if (dis[v[i]] > dis[u[i]] + w[i]) {
// cout << dis[v[i]] << endl << dis[u[i]] << endl << w[i] << endl;
ans = "YES";
break;
}
cout << ans << endl;
}
return 0;
}
数据:
输入:
2
3 3 1
1 2 2
1 3 4
2 3 1
3 1 3
3 2 1
1 2 3
2 3 4
3 1 8
输出:
NO
YES
我的输出:
YES
YES
死活不知道哪里写炸了……