最近两天为树形背包问题所困扰。 这一切的起因是一年前在hackerrank上做的一道题 A Knapsack Problem。 题目大意是: $给一棵N个节点的树,节点i代表一件价值为v[i],体积为s[i]的物品。另有一个体积为M的背包,要求在树上选一个连通块装进背包,\\使得所选物品的总价值最大 ...
分类:
其他好文 时间:
2016-07-05 06:22:43
阅读次数:
327
原文地址:https://www.byvoid.com/blog/biconnect 图的割点、桥与双连通分支 [点连通度与边连通度] 在一个无向连通图中,如果有一个顶点集合,删除这个顶点集合,以及这个集合中所有顶点相关联的边以后,原图变成多个连通块,就称这个点集为割点集合。一个图的点连通度的定义为 ...
分类:
其他好文 时间:
2016-07-02 15:49:06
阅读次数:
85
从问题可以看出是求补图的连通块及点数 但补图太大。所以考虑缩小规模。 当一个点归属于一个连通块后,它以后就不需要了。所以可以用链表,删去这个点,也就减小了规模。 一个点开始bfs,每个点只会进队一次,就被删除了,但是具体的时间复杂度不好估计。。 1 #include<bits/stdc++.h> 2 ...
分类:
其他好文 时间:
2016-06-27 15:20:53
阅读次数:
193
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4587 题意: 删除两个点,使连通块的数目最大化 题解: 枚举删除第一个点,然后对删除了第一个点的图跑割点更新答案。 代码: ...
分类:
其他好文 时间:
2016-06-27 12:21:16
阅读次数:
158
这个题是个想法题 先预处理连通块,然后需要用到一种巧妙暴力,即0变1,1变0,一列列添加删除 复杂度O(n^3) #include <cstdio> #include <iostream> #include <ctime> #include <vector> #include <cmath> #in ...
分类:
其他好文 时间:
2016-06-22 23:31:38
阅读次数:
374
深深的感受到了自己的水 T1: 题意:一棵树,有k个关键点,求分成连通块,每块至少一个关键点,使连通块最大最小。 woc我为啥没想到二分,不懂啊,考试的时候是在梦游吗 二分后判断是否可行 就是一个简单的树上的贪心 可以先bfs一遍倒着来,max表示改点最多能连几个点,sum表示实际有几个点 当改点是 ...
分类:
其他好文 时间:
2016-06-16 22:59:30
阅读次数:
286
蒟蒻Yzm 20160530 bzoj2333 http://www.lydsy.com/JudgeOnline/problem.php?id=2333 题意: 有N个节点,M个操作:连接两个节点、单个节点的权值增加v、节点所在的连通块的所有节点的权值增加v、所有节点的权值增加v、询问节点当前的权值 ...
分类:
其他好文 时间:
2016-06-08 13:58:44
阅读次数:
158
分析转载自http://blog.csdn.net/yukizzz/article/details/51029628 题意: 给定n个点和m条双向边,将双向边改为单向边,问无法到达的顶点最少有多少个? 分析: 无法到达的话即入度为0。 DFS判断每一个连通块中是否存在环,如果存在环,就能保证环中每个 ...
分类:
其他好文 时间:
2016-05-29 21:20:33
阅读次数:
175