【BZOJ2208】【JSOI2010】连通数 传递闭包
来源:互联网 发布:看门狗pc优化补丁 编辑:程序博客网 时间:2024/06/05 02:25
题目描述
定义一个图的连通度为图中可达顶点对的数目。给你一个
题解
一个很简单的做法就是传递闭包:像floyd算法一样处理两个点之间是否可达。
但是这是
观察到用到的运算都是位运算,那就用bitset加速一下就行了。
时间复杂度:
代码
#include<cstdio>#include<cstring>#include<algorithm>#include<cstdlib>#include<ctime>#include<utility>#include<cmath>#include<functional>#include<bitset>using namespace std;typedef long long ll;typedef unsigned long long ull;typedef pair<int,int> pii;typedef pair<ll,ll> pll;void sort(int &a,int &b){ if(a>b) swap(a,b);}void open(const char *s){#ifndef ONLINE_JUDGE char str[100]; sprintf(str,"%s.in",s); freopen(str,"r",stdin); sprintf(str,"%s.out",s); freopen(str,"w",stdout);#endif}int rd(){ int s=0,c; while((c=getchar())<'0'||c>'9'); do { s=s*10+c-'0'; } while((c=getchar())>='0'&&c<='9'); return s;}int upmin(int &a,int b){ if(b<a) { a=b; return 1; } return 0;}int upmax(int &a,int b){ if(b>a) { a=b; return 1; } return 0;}bitset<2001> f[2010];char s[2010];int main(){ int n; int i,j; scanf("%d",&n); for(i=1;i<=n;i++) { scanf("%s",s+1); for(j=1;j<=n;j++) if(s[j]-'0') f[i].set(j); f[i].set(i); } for(j=1;j<=n;j++) for(i=1;i<=n;i++) if(i!=j&&f[i][j]) f[i]|=f[j]; int s=0; for(i=1;i<=n;i++) s+=f[i].count(); printf("%d\n",s); return 0;}
阅读全文
0 0
- 【BZOJ2208】【JSOI2010】连通数 传递闭包
- 【传递闭包+bitset优化】BZOJ2208 [Jsoi2010]连通数
- bzoj2208 [Jsoi2010]连通数(tarjan缩点+拓扑排序+bitset传递闭包)
- BZOJ2208: [Jsoi2010]连通数
- BZOJ2208: [Jsoi2010]连通数
- bzoj2208 [Jsoi2010]连通数
- bzoj2208: [Jsoi2010]连通数
- BZOJ2208 [Jsoi2010]连通数
- bzoj2208 [Jsoi2010]连通数 dfs
- 【BZOJ2208】[Jsoi2010]连通数【BFS/DFS】【SCC】
- bzoj2208 [Jsoi2010]连通数(scc+bitset)
- [Tarjan+Bitset]BZOJ2208: [Jsoi2010]连通数
- [BZOJ2208][Jsoi2010]连通数(tarjan+topdp)
- BZOJ2208: [Jsoi2010]连通数 Tarjan缩点+Dfs
- [BZOJ2208][Jsoi2010]连通数(dfs||tarjan+拓扑序+dp)
- 2208: [Jsoi2010]连通数
- 2208: [Jsoi2010]连通数
- 2208: [Jsoi2010]连通数
- android 网络协议等socket,http,HTTPS,get。post请求 等详解
- Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'. > com.android.build.a
- 【Mysql】主从配置,实现读写分离
- python3.6 源码分析(五):类的创建
- 很简单的git和GitHub入门
- 【BZOJ2208】【JSOI2010】连通数 传递闭包
- 2017.11.4
- Android开发禁止返回键与禁止返回上一次
- 并查集
- 算术运算的应用
- Oracle存储过程实例集锦
- HDU4349-Xiao Ming's Hope(Lucas定理)
- Ubuntu14.04下Qt5+opencv3.0安装和配置
- Ubuntu环境配置之显卡驱动安装、vim