
图的连通
CR1SceNT
这个作者很懒,什么都没留下…
展开
-
BZOJ2208: [Jsoi2010]连通数
题目链接【分析】刚开始看到这道题感觉挺蠢得。。缩点DAG就好了嘛。很迅速的打完后发现WA掉了。原因很简单,因为直接拓扑排序中dp更新答案会导致重复计算。 然后想办法改进。直接更新答案会重复计算,那如果记录下有那些点已经更新了当前点就可以了。首先想到的就是直接用数组标记。。(那和暴力有什么区别!!?)。虽然暴力好像能过。。但是这显然不是我们想要的解法。 然后发现bitset好像可以完美解决。。但是原创 2016-12-27 16:39:12 · 555 阅读 · 0 评论 -
BZOJ1589: [Usaco2008 Dec]Trick or Treat on the Farm 采集糖果
题目链接缩点+记忆化【代码】#include <cstdio>#include <iostream>#include <queue>#include <vector>#include <algorithm>#include <cstring>#include <cmath>#include <stack>#define N 1000005#define M 1000005#def原创 2016-12-27 19:21:13 · 539 阅读 · 0 评论 -
BZOJ1123: [POI2008]BLO
题目链接【分析】(这种清新脱俗的题面看起来就是爽啊。。) tarjan求割点 把某个割点去掉以后,会出现几个连通块,它们之间不能互相到达 即会分成上面一棵树,下面若干子树 子树之间不互通,所有子树和上面那个树不互通,通过记录树的大小统计答案 另外删去的点和其它点不互通【代码】#include <cstdio>#include <iostream>#include <原创 2016-12-28 09:20:22 · 328 阅读 · 0 评论 -
BZOJ2730: [HNOI2012]矿场搭建
题目链接【分析】显然在割点建是不划算的。那就一定是在非割点建立出口。 接下来考虑如何最小。对于每一个点双连通分量。若其中有两个或两个以上的割点,则不需要建,因为若其中一个割点坍塌,可以通过另外一个割点进入其它连通分量中的救援出口。若只有一个割点,则只要建一个。若无割点,则需要建两个。【代码】#include <cstdio>#include <iostream>#include <queue>原创 2016-12-28 14:02:11 · 428 阅读 · 0 评论 -
BZOJ1093: [ZJOI2007]最大半连通子图
题目链接【分析】(题目看了好半天。。但是其实很好懂得。。 缩点+dp找最长链和最长链方案数。还是很好想的。但是需要注意重构图后关于重边的处理。 为什么要去重边呢??这个问题困扰了我半天。注意原题中一句话即可【代码】#include <cstdio>#include <iostream>#include <queue>#include <vector>#include <algorithm原创 2016-12-28 11:09:46 · 291 阅读 · 0 评论 -
BZOJ2427: [HAOI2010]软件安装
题目链接【分析】既然相互有依赖关系,那么缩点之后,就得到若干点和森林,建立树根,连向每一个单点和入度为0的点。树形dp。 (注意:对于任意一颗子树,选不了根下面的就都不能选)。(哎。。自己硬是把对的改成错的交了。。)【代码】#include <cstdio>#include <iostream>#include <queue>#include <vector>#include <algor原创 2016-12-28 15:09:28 · 267 阅读 · 0 评论