Initial commit: C++ courseware
This commit is contained in:
commit
4a4ee7c287
1789 files changed
+373489
No files matched your search
@@ -0,0 +1,21 @@
|
||||
// P2419 牛大赛。胜者指向败者,闭包后判断是否与其余点全部可比较。
|
||||
#include <bits/stdc++.h>
|
||||
using namespace std;
|
||||
int main() {
|
||||
ios::sync_with_stdio(false); cin.tie(nullptr);
|
||||
int n, m; if (!(cin >> n >> m)) return 0;
|
||||
vector<vector<bool>> reach(n, vector<bool>(n, false));
|
||||
for (int i = 0, a, b; i < m; ++i) { cin >> a >> b; reach[a-1][b-1] = true; }
|
||||
for (int k = 0; k < n; ++k) for (int i = 0; i < n; ++i) for (int j = 0; j < n; ++j)
|
||||
reach[i][j] = reach[i][j] || (reach[i][k] && reach[k][j]);
|
||||
int ans = 0;
|
||||
for (int v = 0; v < n; ++v) {
|
||||
int known = 0;
|
||||
for (int j = 0; j < n; ++j) {
|
||||
if (j == v) continue;
|
||||
if (reach[v][j] || reach[j][v]) ++known;
|
||||
}
|
||||
if (known == n-1) ++ans;
|
||||
}
|
||||
cout << ans << '\n';
|
||||
}
|
||||
Reference in new issue
Block a user