首页 > Web开发 > 详细

[bitset优化传递闭包][JSOI 2010] 连通数

时间:2020-03-08 09:04:37      阅读:90      评论:0      收藏:0      [点我收藏+]
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
#include <bitset>
using namespace std;

#define RG register int
#define LL long long

bitset<2010> Mat[2010];
int N;

void Floyd(){
    for(RG i=1;i<=N;++i)
        Mat[i][i]=1;
    for(RG i=1;i<=N;++i)
        for(RG j=1;j<=N;++j)
            if(Mat[j][i]) Mat[j]|=Mat[i];
    return;
}

string temp;

int main(){
    scanf("%d",&N);
    getline(cin,temp);
    for(RG i=1;i<=N;++i){
        for(RG j=1;j<=N;++j){
            char c;scanf("%c",&c);
            if(c=='1') Mat[i][j]=1;
        }
        getline(cin,temp);
    }
    Floyd();
    int Ans=0;
    for(RG i=1;i<=N;++i)
        Ans+=Mat[i].count();
    printf("%d\n",Ans);
    return 0;
}

[bitset优化传递闭包][JSOI 2010] 连通数

原文:https://www.cnblogs.com/AEMShana/p/12439522.html

(1)
(1)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!