#include <bits/stdc++.h>
using namespace std;
const int INF = 0x3f3f3f3f;
int t, n, m, s;
bool vis[510];
int dis[510], sum[510];
struct node {
int v;
int w;
};
vector<node> g[510];
bool SPFA(int s) {
queue<int> q;
vis[s] = true;
dis[s] = 0;
sum[s] = 1;
q.push(s);
while (!q.empty()) {
int x = q.front();
q.pop();
vis[x] = false;
for (auto c : g[x]) {
int v = c.v;
if (dis[v] > dis[x] + c.w) {
dis[v] = dis[x] + c.w;
if (!vis[v]) {
sum[v]++;
if (sum[v] >= n) {
return false;
}
vis[v] = true;
q.push(v);
}
}
}
}
return true;
}
signed main() {
cin.tie(0), cout.tie(0);
ios::sync_with_stdio(false);
cin >> t;
while (t--) {
cin >> n >> m >> s;
for (int i = 0; i <= 500; i++) g[i].clear();
for (int i = 1; i <= m; i++) {
int u, v, w;
cin >> u >> v >> w;
g[u].push_back({v, w});
g[v].push_back({u, w});
}
for (int i = 1; i <= s; i++) {
int u, v, w;
cin >> u >> v >> w;
g[u].push_back({v, -w});
}
memset(vis, false, sizeof vis);
memset(sum, 0, sizeof sum);
memset(dis, 0x3f, sizeof dis);
if (SPFA(1)) cout << "No" << endl;
else cout << "Yes" << endl;
}
return 0;
}
过样例但是 0 pts,求助。