bzoj2208 连通数(bitset优化传递闭包)
思路
floyd求一下传递闭包,然后统计每个点可以到达的点数。
会tle,用bitset优化一下。将floyd的最后一层枚举变成bitset。
代码
/*
* @Author: wxyww
* @Date:   2019-01-23 15:08:40
* @Last Modified time: 2019-01-23 15:22:52
*/
#include<cstdio>
#include<iostream>
#include<cstdlib>
#include<cmath>
#include<ctime>
#include<bitset>
using namespace std;
typedef long long ll;
const int N = 2010;
bitset<N>f[N];
ll read() {
   ll x=0,f=1;char c=getchar();
   while(c<'0'||c>'9') {
      if(c=='-') f=-1;
      c=getchar();
   }
   while(c>='0'&&c<='9') {
      x=x*10+c-'0';
      c=getchar();
   }
   return x*f;
}
char s[N];
int main() {
   int n = read();
   for(int i = 1;i <= n;++i) {
      scanf("%s",s + 1);
      for(int j = 1;j <= n;++j)
         f[i][j] = s[j] - '0';
      f[i][i] = 1;
   }
   for(int k = 1;k <= n;++k)
      for(int i = 1;i <= n;++i)
         if(f[i][k]) f[i] |= f[k];
   ll ans = 0;
   for(int i = 1;i <= n;++i)
      ans += f[i].count();
   cout<<ans;
   return 0;
}
bzoj2208 连通数(bitset优化传递闭包)的更多相关文章
- hdu_5036_Explosion(bitset优化传递闭包)
		题目链接:hdu_5036_Explosion 题意: 一个人要打开或者用炸弹砸开所有的门,每个门里面有一些钥匙,一个钥匙对应一个门,有了一个门的钥匙就能打开相应的门,告诉每个门里面有哪些门的钥匙,问 ... 
- BZOJ2208 [Jsoi2010]连通数[缩点/Floyd传递闭包+bitset优化]
		显然并不能直接dfs,因为$m$会非常大,复杂度就是$O(mn)$: 这题有三种做法,都用到了bitset的优化.第二种算是一个意外的收获,之前没想到竟然还有这种神仙操作.. 方法一:缩点+DAG上b ... 
- POJ 3275 Ranking the Cows(传递闭包)【bitset优化Floyd】+【领接表优化Floyd】
		<题目链接> 题目大意:FJ想按照奶牛产奶的能力给她们排序.现在已知有N头奶牛$(1 ≤ N ≤ 1,000)$.FJ通过比较,已经知道了M$1 ≤ M ≤ 10,000$对相对关系.每一 ... 
- POJ 3275 Ranking the cows ( Floyd求解传递闭包 && Bitset优化 )
		题意 : 给出 N 头牛,以及 M 个某些牛之间的大小关系,问你最少还要确定多少对牛的关系才能将所有的牛按照一定顺序排序起来 分析 : 这些给出的关系想一下就知道是满足传递性的 例如 A > B ... 
- bzoj 1703: [Usaco2007 Mar]Ranking the Cows 奶牛排名【bitset+Floyd传递闭包】
		把关系变成有向边,稍微想一下就是要求在有向图中不能到达的点对个数,这个可以用Floyd传递闭包来做,但是n^3的复杂度跑不了1000 考虑bitset优化! 因为传递过程只会出现0和1,用bitset ... 
- poj 3660 Cow Contest (bitset+floyd传递闭包)
		传送门 解题思路 考试题,想到传递闭包了,写了个O(n^3)的,T了7个点...后来看题解是tm的bitset优化???以前好像没听过诶(我太菜了),其实也不难,时间复杂度O(n^3/32) #inc ... 
- hdu 5506 GT and set dfs+bitset优化
		GT and set Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Probl ... 
- hdu 5745 La Vie en rose  DP + bitset优化
		http://acm.hdu.edu.cn/showproblem.php?pid=5745 这题好劲爆啊.dp容易想,但是要bitset优化,就想不到了. 先放一个tle的dp.复杂度O(n * m ... 
- HDU4460-Friend Chains-BFS+bitset优化
		bfs的时候用bitset优化一下. 水题 #include <cstdio> #include <cstring> #include <algorithm> #i ... 
随机推荐
- Java ME之Android开发从入门到精通
			1. 搭建Android开发环境 方式一:使用ADT插件安装 ADT插件的下载与安装,ADT插件获取网址:http://www.androiddevtools.cn/ 下载好的ADT插件如图所示: 在 ... 
- Bootstrap之响应式导航栏
			代码: <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8 ... 
- SELECT IDENT_CURRENT(tableName)和自增长列的纠结
			项目中要用到一个功能:主表主键为自增长,要求在插入主表数据前先获得主表要插入数据的主键ID值,用在插入子表时获取主键ID.在网上搜了一下,发现SELECT IDENT_CURRENT(TableNam ... 
- Upload Files In ASP.NET Core 1.0 (Form POST And JQuery Ajax)
			Uploading files is a common requirement in web applications. In ASP.NET Core 1.0 uploading files and ... 
- vue的 v-for 循环中图片加载路径问题
			先看一下产品需求,如下图所示, 产品要求图片和它的名称一一对应,本来是非常简单的需求,后台直接返回图片路径和名称,前台直接读取就可以了,但是我们没有存储图片的服务器,再加上是一个实验性的需求,图片需要 ... 
- Linux下tomcat中多项目配置druid报错的问题
			这里有多种方法,推荐修改tomcat配置,即在启动JVM配置中设置如下: -Ddruid.registerToSysProperty=true 详解参见该博: https://blog.csdn.ne ... 
- 基准对象object中的基础类型----元组 (五)
			object有如下子类: CLASSES object basestring str unicode buffer bytearray classmethod complex dict enumera ... 
- MySql的CURRENT_TIMESTAMP
			在创建时间字段的时候 DEFAULT CURRENT_TIMESTAMP表示当插入数据的时候,该字段默认值为当前时间 ON UPDATE CURRENT_TIMESTAMP表示每次更新这条数据的时候, ... 
- Scratch 简单的小游戏 --- 碰碰球
			Scratch 简单的小游戏 --- 碰碰球 ================================ 积木脚本块的简要分类: 1. 角色 2. 背景 3. 角色和背景组成的场景 4. 挡板角 ... 
- PSR-4 规范实例讲解 -- php 自动加载
			参考 参考文档:https://www.kancloud.cn/thinkphp/php-fig-psr/3144 参考实例:https://github.com/php-fig/fig-standa ... 
