Luogu2881 排名的牛Ranking the Cows

bitset优化floyd求传递闭包

然而我从来没用过bitset啊qwq

CODE:

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<bitset>
using namespace std;
#define MAXN 1009
bitset<MAXN> g[MAXN];
int n, m;
int main(){
    scanf("%d%d", &n, &m);
    int f, t;
    while(m--){
        scanf("%d%d", &f, &t);
        g[f][t]=true;
    }
    for(int i=1; i<=n; i++)
        for(int j=1; j<=n; j++)
            if(g[j][i])
                g[j]|=g[i];
    int ans=0;
    for(int i=1; i<=n; i++)
        for(int j=i+1; j<=n; j++)
            if(!g[i][j]&&!g[j][i]) ans++;
    printf("%d", ans);
    return 0;
}
posted @ 2018-10-12 17:55  PushinL  阅读(85)  评论(0编辑  收藏  举报