题意 题目链接 Sol 数据水的一批,\(O(n^3)\)暴力可过 实际上只要bitset优化一下floyd复杂度就是对的了(\(O(\frac{n^3}{32})\)) 还可以缩点之后bitset维护一下连通性,然后对每个联通块之间的分别算,复杂度是\(O(\frac{nm}{32})\)(好像和上面的没区别...) 上面代码是floyed 下面的是tarjan // luogu-judger-enable-o2 #include<bits/stdc++.h> using namespace…
连通数 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…
2208: [Jsoi2010]连通数 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/problem.php?id=2208 Description Input 输入数据第一行是图顶点的数量,一个正整数N. 接下来N行,每行N个字符.第i行第j列的1表示顶点i到j有边,0则表示无边. Output 输出一行一个整数,表示该图的连通数. Sample Input 3 010 001 100…
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 好好的暴力不写去写什么算法 虽然我也是学算法学傻了的,前两天看到一道题说这不是莫队裸题吗,然后其实前缀和就行了…
题目传送门 题目描述 度量一个有向图连通情况的一个指标是连通数,指图中可达顶点对的个数. 在上图中,顶点1可以到达1.2.3.4.5. 顶点2可以到达2.3.4.5. 顶点3可以到达3.4.5. 顶点4.5均只能到达自身,所以它的连通数为14. 请编写一个程序,输入一个图,求它的连通数. 输入格式 输入数据第一行是图顶点的数量,一个正整数N. 接下来N行,每行N个字符.第i行第j列的1表示顶点i到j有边,0则表示无边. 输出格式 输出一行一个整数,表示该图的连通数. 样例 样例输入: 30100…
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…
题目 输入格式 输入数据第一行是图顶点的数量,一个正整数N. 接下来N行,每行N个字符.第i行第j列的1表示顶点i到j有边,0则表示无边. 输出格式 输出一行一个整数,表示该图的连通数. 输入样例 3 010 001 100 输出样例 9 提示 对于100%的数据,N不超过2000. 题解 今晚水的题有点多...[明天要会考涨涨信心] N才2000,可以O(n2) 那从每个点出发跑一遍bfs看看能到哪些点就好了 #include<iostream> #include<cstdio>…
题目大意:给定一个n个点的有向图,求有多少点对(x,y),使x沿边可到达y 设f[i][j]为从i到j是否可达 首先强联通分量中的随意两个点均可达 于是我们利用Tarjan缩点 缩点之后是一个拓扑图.我们求出拓扑序,沿着拓扑序从后向前DP,状态转移方程为: f[i][k]=or{ f[j][k] } (i有直连边到达j,1<=k<=n,n为强连通分量的个数) 鉴于每一个点的值仅仅会是1或者0.所以我们能够直接状压,或者干脆开bitset,总体取或就可以 时间复杂度O(mn/32) 今天各种手滑…
显然并不能直接dfs,因为$m$会非常大,复杂度就是$O(mn)$: 这题有三种做法,都用到了bitset的优化.第二种算是一个意外的收获,之前没想到竟然还有这种神仙操作.. 方法一:缩点+DAG上bitset优化的统计 做有向图连通问题上来先看可不可以缩点首先一个环内点是可以相互连通的,又发现DAG也许方便统计,于是缩点..然后变成一张DAG,只要统计每个点可以往后走到的所有点权(指该环包含的点数)的和.并不好直接把后继全加上去,因为会有点被重复统计.为了避免重复统计,只要直接每个点开一个bi…