摘要: 题目意思:给出你n种硬币的面额和数量,询问它能够组合成1~m元中的几种情况。 这题如果直接按照完全背包来写的话,会因为每一种硬币的数目1 ≤ Ci ≤ 1000而超时,所以这里需要运用二进制优化来解决问题。 二进制优化和快速幂的思路是一样的。 例如:面值为1的硬币有20枚,如果完全背包的话就需要20 阅读全文
posted @ 2019-04-22 19:28 啾啾猫猫 阅读(456) 评论(0) 推荐(0) 编辑
摘要: 中文题面,给你一个矩阵,每一个格子有数字,有两种操作。 1. 把i行j列的值更改 2. 询问两个角坐标分别为(x1,y1) (x2,y2)的矩形内有几个值为z的点。 这一题的特点就是给出的z的数据范围很小,只有1~100,所以我们可以开100个300X300的二维树状数组来解决问题。 阅读全文
posted @ 2019-04-21 20:47 啾啾猫猫 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 题意:给你一个树,问你最少连几条边可以让树中的每一个节点在且只在一个环内。如果无法完成就输出-1。 我们设dp[i][0]为根节点为i的树变成每一个节点都在且只在一个环里所需要的最小边数。dp[i][1]为除了根节点i外其他点都在且只在一个环里所需要的最小边数。 dp[i][2]为除了根节点和一个子 阅读全文
posted @ 2019-04-20 17:34 啾啾猫猫 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 中文题面,目的很明显,把相邻的两个点看成是两个点之间有一条边,就能当成树形dp来做了。 用一遍dfs可以找出最大的子树权值和。 阅读全文
posted @ 2019-04-18 20:37 啾啾猫猫 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 题意:给你一棵树,树的1号节点是电视台,2~n-m号节点是转播站,剩下的m个点是用户。点到点之间传递信号要消耗钱,最后一行给你能从每个用户收取的钱。然后问你在不亏本的情况下最多可以让多少的用户看到电视。 状态方程设为dp[i][j]表示,由点i开始传送,且让j名观众能够收到信号的情况下最大的利润 在 阅读全文
posted @ 2019-04-18 16:01 啾啾猫猫 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 题目意思:给你一颗节点数为n的树,然后其中m个特殊点,再给你一个值d,问你在树中有多少个点到这m个点的距离都不大于d。 这题的写法有点像树的直径求法,先随便选择一个点(姑且设为点1)来遍历一遍树,存下所有点到点1的距离。然后在m个特殊点中找到距离点1最远的点a1. 然后以a1为初始点遍历一遍树,求每 阅读全文
posted @ 2019-04-17 22:27 啾啾猫猫 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 中文题面,给出一个图,问能不能成环,如果可以就输出YES。否则输出该树的直径。 这里的判环我们用路径压缩的并查集就能很快的判断出来,可以在输入的同时进行判断。这题重点就是求树的直径。 树直径的性质可以参考https://blog.csdn.net/pi9nc/article/details/1239 阅读全文
posted @ 2019-04-16 21:18 啾啾猫猫 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 题目大意:给出一组括号,询问你给括号上色的情况数,颜色有两种,要求有两点: ①一对匹配的括号,最多且必须有一个上色,即每一对对应的括号都是一个有颜色,另一个没有颜色。 ②相邻的两个字符,不能为同一种颜色,但是可以是都不染色。 dp[i][j][k1][k2]表示区间[i,j]且i为颜色k1、j为颜色 阅读全文
posted @ 2019-04-15 20:51 啾啾猫猫 阅读(141) 评论(0) 推荐(1) 编辑
摘要: 题意:要把a串变成b串,每操作一次,可以使a串的[l,r]区间变为相同的一个字符。问把a变成b最少操作几次。 这题写法明显是区间dp ,关键是处理的方法。 dp[l][r]表示b串的l~r区段至少需要刷几次。这个值直接在b串中讨论,不用考虑a串。 之后用一个数组ans[i]来帮助求答案,ans[i] 阅读全文
posted @ 2019-04-14 17:58 啾啾猫猫 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 参考了许多大佬 尤其是https://blog.csdn.net/woshi250hua/article/details/7973824这一篇 ,最后我再加一点我的见解。 大意是 给定一个序列,序列内的人有屌丝值Di,将这个序列进栈,第i个人如果是第k个出栈,那么最后的屌丝总值增加Di * (k-1 阅读全文
posted @ 2019-04-12 20:33 啾啾猫猫 阅读(163) 评论(0) 推荐(0) 编辑