上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 39 下一页
摘要: 题目大意:给定一个图的最短路,求原图中至少存在多少条边。 题解:利用 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 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定一个长度为 N 的序列,现有两个人从 P 点出发,每个单位时间每个人最多可以移动一个单位,两人之间的最大距离不能超过 M,一共有 T 单位的时间,求在合法情况下,两人可以获得的序列点权和最大是多少。 题解:模拟+贪心 首先考虑最开始的情况,在合法的情况下肯定是扩展的越大越好,在这里用了 阅读全文
posted @ 2019-05-27 09:17 shellpicker 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定一棵 N 个节点的有根树,边有边权,在根结点处有 K 个人,这些人会遍历树上的所有边,求如何遍历才能使得所有人走过路径的边权和最小。 题解: 引理:对于一棵子树来说,若存在 M 0 个人最后停留在这棵子树内,则对于最优情况来说,来到过这棵子树的人也只能是 M 个,即:不会存在第 M+1 阅读全文
posted @ 2019-05-26 21:56 shellpicker 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定一棵 N 个节点的有根树,点有点权,边权均为1。现允许从根节点出发走 K 步,求可以经过的点权之和最大是多少。 题解:可以将点权看作是价值,将可以走的步数看作是重量,则转化成了一个树上背包问题。 显然状态中的两个维度应该有以 i 为根和走的步数,但是发现若从当前节点走到了其中一个子节点 阅读全文
posted @ 2019-05-26 14:32 shellpicker 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给定一棵 N 个节点的无根树,每个节点有一个重量和一个价值,现给出一些单位,每个单位可以接受 20 个重量单位,求如何分配这些单位,使得获得的价值最大。 题解:dp 好题qwq。。真的毒瘤。 状态转移很好设计,$dp[i][j]$ 表示以 i 为根节点的子树中,分配 j 个单位可以获得的最 阅读全文
posted @ 2019-05-25 21:52 shellpicker 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 题目大意:求 [a,b] 中 0 9 分别出现了多少次。 题解:看数据范围应该是一个数位dp。 在 dfs 框架中维护当前的位置和到当前位置一共出现了多少个 $x,x\in [0,9]$。因此,用一个 dp[][] 数组记录一下状态即可,dp 的含义大概是前 i 位中出现了 j 个 x 的总 x 的 阅读全文
posted @ 2019-05-25 14:22 shellpicker 阅读(287) 评论(0) 推荐(0) 编辑
摘要: 题目大意:求区间 [l,r] 内萌数的个数,其中萌数定义为数位中存在长度至少为 2 的回文子串的数字。 题解:l, r 都是 1000 位级别的数字,显然是一道数位 dp 的题目,暴力直接去世。 发现萌数的定义是一个存在性命题,并不好去求解。利用补集思想,将存在性命题转化成任意性命题,即:求区间 [ 阅读全文
posted @ 2019-05-25 14:17 shellpicker 阅读(365) 评论(0) 推荐(0) 编辑
摘要: 题目大意:求区间 [n,m] 中数位不包含 4 和 62 的数字的个数。 题解:数位dp。 预处理出 $f[i][j]$ 表示 i 位数字中以 j 为第一位的满足条件的数字个数。 对于统计答案来说采用前缀和相减的方式,即:统计出 [0,m] 中有多少满足条件的数减去 [0,n 1] 中满足条件的数字 阅读全文
posted @ 2019-05-24 13:28 shellpicker 阅读(171) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 11 12 ··· 39 下一页