bzoj1589[Usaco2008 Dec]Trick or Treat on the Farm 采集糖果 题意: n个节点,每个节点有一个后继节点,问从每个节点出发能到多少个没去过的节点。n≤100000。 题解: 因为每个节点只有一个后继节点,所有tarjan缩点后就会变成一堆链,对每条链df ...
分类:
其他好文 时间:
2016-09-25 17:22:45
阅读次数:
155
【算法】(强连通分量)并查集 【题解】 1.用tarjan计算强连通分量并缩点,在新图中找入度为0的点的个数就是答案。 但是,会爆内存(题目内存限制64MB)。 2.用并查集,最后从1到n统计fa[i]==i的数量即是答案。 (tarjan) #include<cstdio> #include<al ...
分类:
其他好文 时间:
2016-09-23 20:06:01
阅读次数:
133
【算法】强连通分量(tarjan)+拓扑排序+状态压缩(bitset) 【题解】 1.强连通分量(scc)内所有点可互达,对答案的贡献为cnt[i]*cnt[i](cnt[i]第i个scc内点的个数),在第四步顺便计算即可,不用单独计算。 2.缩点得到新图,对新图中的每一个点开一个bitset[20 ...
分类:
Web程序 时间:
2016-09-21 23:05:09
阅读次数:
211
Cow Ski Area Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 3323 Accepted: 919 Description Farmer John's cousin, Farmer Ron, who lives in ...
分类:
其他好文 时间:
2016-09-21 18:45:04
阅读次数:
144
题意:有n个点,m条边,有重边。现在可以任意在图上添加一条边,求桥的最少数目。 题解:思路就是求出双连通分量之后缩点成为一棵树,然后求出树的直径,连接树的直径就能减少最多的桥。 难点在于:有!重!边! 像我这样习惯于无脑用模板的人来说。。。。头疼死了。。。。。。 既然有重边,dfs的时候就不要标记点 ...
分类:
其他好文 时间:
2016-09-18 20:58:54
阅读次数:
150
tarjan缩点后找入度为零的强连通分量,加上它的sum即可 但注意到还有NO的可能, 所以大致有两种方法: 1.tarjan之前先来一遍bfs 2.tarjan内加一个数组维护最小编号 貌似前者比较好写qwq 1 #include<cstdio> 2 #include<cstring> 3 usi ...
分类:
其他好文 时间:
2016-09-16 18:27:38
阅读次数:
174
tarjan缩点 之后跑一边spfa即可 1 #include<cstdio> 2 #include<cstring> 3 using namespace std; 4 const int N=500010,novis=-1,over=1,nowvis=0; 5 int head1[N],head2 ...
分类:
其他好文 时间:
2016-09-15 18:00:36
阅读次数:
231
强连通分量: 首先tarjan缩点重构图 之后,若出度为0的点仅有一个,那么答案即为该点代表的强连通分量中点的个数 否则,答案为0 1 #include<cstdio> 2 #include<cstring> 3 using namespace std; 4 const int N=10010,M= ...
分类:
其他好文 时间:
2016-09-15 12:21:30
阅读次数:
173
传送门 Description A number of schools are connected to a computer network. Agreements have been developed among those schools: each school maintains a l ...
分类:
其他好文 时间:
2016-09-11 06:47:47
阅读次数:
196
惨烈啊。。。int son[x]=>bool son[x]一直调不出来我也是醉了。!!!最新错法。。。 缩点后有重边!!! 就是缩点之后找最长路然后找有多少条最长路树形dp一下。 #include<cstdio> #include<cstring> #include<cctype> #include ...
分类:
其他好文 时间:
2016-09-09 22:28:42
阅读次数:
174