摘要: 题目大意:给定一个图的最短路,求原图中至少存在多少条边。 题解:利用 Floyd 的性质,枚举边 d[i][j],若存在一个不是两端点的点,使得 d[i][j]=d[i][k]+d[k][j] 成立,则证明 (i,j) 这条边可以没有。 代码如下 cpp include using namespac 阅读全文
posted @ 2019-05-27 21:54 shellpicker 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定一棵有根树,1 号节点为根节点,点有点权,边有边权,初始给定一个价值,每经过一条边都会减少该价值,每经过一个点都会增加相应的答案贡献值,求如何在给定价值的情况下最大化答案贡献,并要求最后在 N 号节点停留,若无法停留,则输出相应字符串。 题解: 首先,不考虑要求在 N 号节点停留的限制 阅读全文
posted @ 2019-05-27 21:23 shellpicker 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定一个长度为 N 的序列,求序列中最大值和最小值相差小于 K 的连续段的个数。 题解: 最大值和最小值相差不超过 K 是一个在值域角度的限制,应考虑采用平衡树或权值...数据结构进行维护。 连续的一段即可考虑采用双指针进行维护即可。 注意: r 是 当前需要判断 的情况,故 r 从 1 阅读全文
posted @ 2019-05-27 09:55 shellpicker 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定一个长度为 N 的序列,现有两个人从 P 点出发,每个单位时间每个人最多可以移动一个单位,两人之间的最大距离不能超过 M,一共有 T 单位的时间,求在合法情况下,两人可以获得的序列点权和最大是多少。 题解:模拟+贪心 首先考虑最开始的情况,在合法的情况下肯定是扩展的越大越好,在这里用了 阅读全文
posted @ 2019-05-27 09:17 shellpicker 阅读(138) 评论(0) 推荐(0) 编辑