洛谷P2881 [USACO07MAR]排名的牛Ranking the Cows(bitset Floyd)
程序员文章站
2022-03-30 10:13:40
题意 "题目链接" Sol 显然如果题目什么都不说的话需要$\frac{n (n 1)}{2}$个相对关系 然后求一下传递闭包减掉就行了 cpp include using namespace std; const int MAXN = 1001; inline int read() { char ......
题意
sol
显然如果题目什么都不说的话需要\(\frac{n * (n - 1)}{2}\)个相对关系
然后求一下传递闭包减掉就行了
#include<bits/stdc++.h> using namespace std; const int maxn = 1001; inline int read() { char c = getchar(); int x = 0, f = 1; while(c < '0' || c > '9') {if(c == '-') f = -1; c = getchar();} while(c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar(); return x * f; } int n, m; bitset<maxn> f[maxn]; int main() { n = read(); m = read(); for(int i = 1; i <= m; i++) { int x = read(), y = read(); f[x][y] = 1; } for(int k = 1; k <= n; k++) for(int i = 1; i <= n; i++) if(f[i][k]) f[i] = f[i] | f[k]; int ans = n * (n - 1) / 2; for(int i = 1; i <= n; i++) ans -= f[i].count(); cout << ans; return 0; }