特别想知道非正常算法
学习了一下Bitset
毒瘤算法:Floyd传递闭包
#include<bits/stdc++.h>
using namespace std;
const int N=2501;
bitset<N> G[N];
int n,m;
int main(){
scanf("%d",&n);
for(register int i=1;i<=n;++i){
char s[2001];
scanf("%s",s+1);
for(register int j=1;j<=n;++j){
if(s[j]=='1'){
G[i][j]=1;
}
}
G[i][i]=1;
}
for(register int i=1;i<=n;++i){
for(register int j=1;j<=n;++j){
if(G[j][i])
G[j]|=G[i];
}
}
int ans=0;
for(register int i=1;i<=n;++i){
ans+=G[i].count();
}
cout<<ans;
}