BZOJ2208连通数】的更多相关文章

题目链接 思路 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…
还是挺简单的tarjan. 判断时可能重复,直接bitset搞定. 首先tarjan缩点,每个scc的内部肯定能互相到达,更一下,而且一个scc里的各个点的贡献肯定是一样的,topsort,更新答案就可以了,用bitset的count成上scc大小即可. 据说数据很水,大约O(n^3)可过,但是我看了看,没缩点,直接dfs,细节比较多,略烦,上述算法比较长,但是脑量比较小.还是比较好的,tarjan和topsort打得熟就15min搞定. #include<iostream> #include…
[BZOJ2208][JSOI2010]连通数(Tarjan) 题面 BZOJ 洛谷 题解 先吐槽辣鸡洛谷数据,我写了个\(O(nm)\)的都过了. #include<iostream> #include<cstdio> using namespace std; #define MAX 2020 struct Line{int v,next;}e[MAX*MAX]; int h[MAX],cnt=1; inline void Add(int u,int v){e[cnt]=(Lin…
[BZOJ2208][Jsoi2010]连通数 Description Input 输入数据第一行是图顶点的数量,一个正整数N. 接下来N行,每行N个字符.第i行第j列的1表示顶点i到j有边,0则表示无边. Output 输出一行一个整数,表示该图的连通数. Sample Input 3 010 001 100 Sample Output 9 HINT 对于100%的数据,N不超过2000. 题解:一开始以为要tarjan+DFS,后来发现为什么要tarjan~ #include <cstdio…
连通数 bzoj-2208 Jsoi-2010 题目大意:给定一个n个节点的有向图,问每个节点可以到达的点的个数和. 注释:$1\le n\le 2000$. 想法:网上有好多tarjan+拓扑序dp的... 我们考虑暴力怎么做:显然就是用floyd的warshall求出连通矩阵,然后扫矩阵即可. 发现这个过程可以使用bitset进行优化,复杂度为$O(\frac{n^3}{32})$. 最后,附上丑陋的代码... ... #include <bits/stdc++.h> using name…
http://blog.csdn.net/u013598409/article/details/47037499 里面似乎有生成数据的... //我本来的想法是tarjan缩点之后然后将图遍历一遍就可以了,复杂度应该是O(n2)的,为什么说这样是n3的啊... //=>这种做法是错的因为有可能会重复计算用一下传递闭包就可以了然而直接递推以前写的dfsqaq #include<cstdio> #include<cstring> #include<cctype> #i…
2208: [Jsoi2010]连通数 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 1879  Solved: 778[Submit][Status][Discuss] Description Input 输入数据第一行是图顶点的数量,一个正整数N. 接下来N行,每行N个字符.第i行第j列的1表示顶点i到j有边,0则表示无边. Output 输出一行一个整数,表示该图的连通数. Sample Input 3 010 001 100 Sample…
Description Input 输入数据第一行是图顶点的数量,一个正整数N. 接下来N行,每行N个字符.第i行第j列的1表示顶点i到j有边,0则表示无边. Output 输出一行一个整数,表示该图的连通数. Sample Input 3 010 001 100 Sample Output 9 HINT 对于100%的数据,N不超过2000. Source 第一轮 Solution 好好的暴力不写去写什么算法 虽然我也是学算法学傻了的,前两天看到一道题说这不是莫队裸题吗,然后其实前缀和就行了…
Description Input 输入数据第一行是图顶点的数量,一个正整数N. 接下来N行,每行N个字符.第i行第j列的1表示顶点i到j有边,0则表示无边. Output 输出一行一个整数,表示该图的连通数. Sample Input 3 010 001 100 Sample Output 9 HINT 对于100%的数据,N不超过2000. Solution 数据太水,对于每个点爆搜就能过 Code #include<iostream> #include<cstring> #i…
2208: [Jsoi2010]连通数 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 2305  Solved: 989[Submit][Status][Discuss] Description Input 输入数据第一行是图顶点的数量,一个正整数N. 接下来N行,每行N个字符.第i行第j列的1表示顶点i到j有边,0则表示无边. Output 输出一行一个整数,表示该图的连通数. Sample Input 3 010 001 100 Sample…