uva 11175

来源:互联网 发布:中国雷达技术 知乎 编辑:程序博客网 时间:2024/05/17 01:58
#include <bits/stdc++.h>using namespace std;const int maxn = 3E2 + 5;int G1[maxn][maxn], G2[maxn][maxn], gx[maxn], gy[maxn], to[maxn], n, m, x, y, T, kase;bool check(){for (int i = n - 1; i >= 0; i--){memset(to, 0, sizeof(to));for (int j = gy[i] - 1; j >= 0; j--)for (int k = gx[G2[i][j]] - 1; k >= 0; k--)to[G1[G2[i][j]][k]]++;for (int j = 0; j < n; j++)if (to[j] && to[j] != gy[i])return false;}return true;}int main(int argc, char const *argv[]){ios::sync_with_stdio(false); cin.tie(NULL);cin >> T;while (T--){cin >> n >> m;memset(G1, 0, sizeof(G1));memset(G2, 0, sizeof(G2));memset(gx, 0, sizeof(gx));memset(gy, 0, sizeof(gy));while (m--){cin >> x >> y;G1[x][gx[x]++] = y;G2[y][gy[y]++] = x;}cout << "Case #" << ++kase << ": " << (check() ? "YES" : "NO") << endl;}return 0;}

0 0