摘要: 题解:普通的 BFS 没什么可说的,字符串处理是这道题的难点,同时需要注意哈希判重。 另外,对于 $string$ 类来说,学到了一个 push_back((char)) 操作。 "c++string类详解" 代码如下 cpp include using namespace std; int n; 阅读全文
posted @ 2018-11-30 22:37 shellpicker 阅读(169) 评论(0) 推荐(0)
摘要: 题目大意:给定一个有 N 个点,M 条边的无向图,点有点权,删除一个点就要付出所有与之有联系且没有被删除的点的点权之和的代价,求将所有点删除的最小代价是多少。 题解: 从图连通性的角度出发,删除所有点就意味着需要删除所有的边。 现在来考虑每条边对答案的贡献,由于所有边均需要被删除,才能使得原图完全不 阅读全文
posted @ 2018-11-30 21:02 shellpicker 阅读(220) 评论(0) 推荐(0)
摘要: 题目大意:给定一张无向图,要求如果 A 与 B 之间有边,B 与 C 之间有边,那么 A 与 C 之间也需要有边。问这张图是否满足要求。 题解:根据以上性质,即:A 与 B 有关系,B 与 C 有关系,那么 A 和 C 也要有关系,因此可以采用并查集加以维护,维护关系的同时顺便维护各个联通块的大小, 阅读全文
posted @ 2018-11-30 18:39 shellpicker 阅读(276) 评论(0) 推荐(0)
摘要: 题目大意:给定一棵 N 个节点的树,求从 1 号节点(根节点)出发,任意节点结束,且至少经过每个节点一次的最短路径是多少。 题解:首先考虑最终要回到根节点的情况,可以发现最短路径长度一定等于该树边权的 2 倍。因此,在任意一点结束只需在答案贡献中减掉该树的一条最长链即可。 代码如下 cpp incl 阅读全文
posted @ 2018-11-30 17:44 shellpicker 阅读(279) 评论(0) 推荐(0)
摘要: 题目大意:给定一个长度为 N 的序列,求带权区间最小覆盖。 题解:设 $dp[i]$ 表示从左端点到 i 的最小权值是多少,则状态转移为:$dp[e[i].ed]=min\{dp[j],j\in[e[i].st 1,e[i].ed 1] \}$,初始化 $dp[st 1]=0$ 即可。因此,这里用线 阅读全文
posted @ 2018-11-30 01:26 shellpicker 阅读(421) 评论(0) 推荐(0)