上一页 1 ··· 25 26 27 28 29 30 31 32 33 ··· 39 下一页
摘要: 题目大意:给定一个有 N 个数组成的序列,在此基础上构建一棵二叉排序树,求每个节点(根节点除外)的父节点的编号是多少。 题解:首先,根据二叉排序树的不稳定性,直接模拟构建二叉排序树肯定会超时,因此需要用其他的数据结构来模拟 BST。在这里可以用平衡树来模拟,即:用一个 $set$ 来维护这 N 个序 阅读全文
posted @ 2018-12-02 21:01 shellpicker 阅读(204) 评论(0) 推荐(0)
摘要: 题目大意:给定一棵 N 个节点的有根树(其中根节点始终为 1 号节点),点有点权,点权只有 1 和 0 两种,求从根节点到叶子节点的路径中,有多少条路径满足:路径上最大连续点权为 1 的节点个数不超过 M。 题解:一开始想到了树形dp,即:$dp[i][0/1]$ 表示从根节点到该点的路径中不选/选 阅读全文
posted @ 2018-12-01 21:34 shellpicker 阅读(412) 评论(0) 推荐(0)
摘要: 题目大意:给定一个有向图,求图中最长路。 题解:直接拓扑排序后按照拓扑序枚举即可。处理时应将字符串通过 map 映射成一个点,同时注意字符串大小写转换,C++ string 中没有提供直接大小写转换的函数,因此需要自己手动遍历,进行 $tolower()$ 函数调用。 代码如下 阅读全文
posted @ 2018-12-01 19:47 shellpicker 阅读(394) 评论(0) 推荐(0)
摘要: 题解:普通的 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)
摘要: 题目大意:给定一个 N 个点,M 条边的无向图,现在要选出图中的一个顶点集合,使得集合种的顶点不直接相邻,且这张图的所有边都被该顶点集合覆盖,求该顶点集合大小的最小值,若不能完成覆盖,则输出 impossible。 题解:由于要求集合中顶点不能相邻,且每条边都要被覆盖,则对于任意一条边来说,连接该边 阅读全文
posted @ 2018-11-29 21:51 shellpicker 阅读(128) 评论(0) 推荐(0)
摘要: 题目大意:后序遍历 题解:建立二叉树的码风不知道怎么突然跟线段树一样了...当然,这道题不建树也是可以的。 代码如下 cpp include using namespace std; const int maxn=1100; int n,len,sum[maxn];// cnt of 0 char 阅读全文
posted @ 2018-11-29 20:46 shellpicker 阅读(184) 评论(0) 推荐(0)
上一页 1 ··· 25 26 27 28 29 30 31 32 33 ··· 39 下一页