[BZOJ2208][JSOI2010]连通数(传递闭包+bitset)
Posted hocriser
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[BZOJ2208][JSOI2010]连通数(传递闭包+bitset)相关的知识,希望对你有一定的参考价值。
正解好象是tarjan缩点处理。
1 #include<cstdio> 2 #include<bitset> 3 #include<algorithm> 4 #define rep(i,l,r) for (int i=l; i<=r; i++) 5 using namespace std; 6 7 const int N=2010; 8 int n,ans; 9 char x; 10 bitset<N>f[N]; 11 12 int main(){ 13 scanf("%d",&n); 14 rep(i,1,n) rep(j,1,n) scanf(" %c",&x),f[i][j]=(x==‘1‘)|(i==j); 15 rep(i,1,n) rep(j,1,n) if (f[j][i]) f[j]|=f[i]; 16 rep(i,1,n) ans+=f[i].count(); 17 printf("%d\n",ans); 18 return 0; 19 }
以上是关于[BZOJ2208][JSOI2010]连通数(传递闭包+bitset)的主要内容,如果未能解决你的问题,请参考以下文章