摘要: https://www.lydsy.com/JudgeOnline/problem.php?id=1072 题意 给一个数字串s和正整数d, 统计s有多少种不同的排列能被d整除 试了一下发现暴力可过 因为s的长度只有10的缘故,我们考虑用dp[i][j]来记录i状态下余数为j的数量。 i表示的是这个 阅读全文
posted @ 2018-09-24 10:10 Hugh_Locke 阅读(341) 评论(0) 推荐(0) 编辑
摘要: https://cn.vjudge.net/problem/615831/origin 题意 n个人; 计划是每个人都拿一个礼物来送给一个除了自己之外的人; 如果一个人没有送出礼物,那么它和它送礼物的对象都得不到礼物; 但是已经知道有k个人会忘记带礼物来; 问最少有几个人收不到礼物,最多有多少个人收 阅读全文
posted @ 2018-09-22 22:05 Hugh_Locke 阅读(273) 评论(0) 推荐(0) 编辑
摘要: https://cn.vjudge.net/problem/333897/origin 万万没想到这题表面上是个多重背包,实际上确实是个多重背包 题意 n种物品每种物品有无限个,每个物品有一个价格,现在问选取k个的所有可能总价。 第一眼觉得是一个多重背包,但是问题在于限制一定要选取K个的条件,显然不 阅读全文
posted @ 2018-09-20 22:33 Hugh_Locke 阅读(146) 评论(0) 推荐(0) 编辑
摘要: https://cn.vjudge.net/problem/12427/origin 题意:求1到N第K + 1大条边权最小的路径 首先想到dp递推,dp[x][y]表示到x这个点经过y条免费边的最小值。 直接借助SPFA递推即可 #include <map> #include <set> #inc 阅读全文
posted @ 2018-09-19 21:41 Hugh_Locke 阅读(388) 评论(0) 推荐(0) 编辑
摘要: https://www.lydsy.com/JudgeOnline/problem.php?id=1233 数据结构优化dp的代码总是那么抽象 题意:奶牛们讨厌黑暗。 为了调整牛棚顶的电灯的亮度,Bessie必须建一座干草堆使得她能够爬上去够到灯泡 。一共有N大包的干草(1<=N<=100000)( 阅读全文
posted @ 2018-09-18 22:51 Hugh_Locke 阅读(212) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=3417 题意:先给出一棵无根树,然后下面再给出m条边,把这m条边连上,然后每次你能毁掉两条边,规定一条是树边,一条是新边,问有多少种方案能使树断裂。 我们考虑加上每一条新边的情况,当一条新边加上之后,原本的树就会成环,环上除了所有的树边要断的话必 阅读全文
posted @ 2018-09-17 19:51 Hugh_Locke 阅读(158) 评论(0) 推荐(0) 编辑
摘要: http://poj.org/problem?id=1821 当我们在考虑内层循环j以及决策k的时候,我们可以把外层变量i看作定值,以此来优化dp状态转移方程。 题意 有n个工人准备铺m个连续的墙,每个工人有他必须图的一面墙壁Si,最多连续铺Li,每铺一个就花费Ci的钱,问最多要多少钱; 朴素算法很 阅读全文
posted @ 2018-09-13 23:05 Hugh_Locke 阅读(211) 评论(0) 推荐(0) 编辑
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=5542 题意:求严格递增的长度为M的序列的组数。 当dp的优化方案不那么容易一眼看出来的时候,我们可以考虑先写一个朴素算法,在朴素算法的基础上去考虑优化。 正如这题,很显然用dp[i][j]存储长度为i的序列以j结 阅读全文
posted @ 2018-09-12 20:54 Hugh_Locke 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 有时些候在用快速矩阵幂优化dp的时候,它的矩阵乘法是不那么容易被具体为题目背景的意思的,大多数时候难以理解矩阵之间相乘的实际意义,正如有时候我们不知道现在在做手头这些事情的意义,但倘若是因一个目标而去做的,正如快速矩阵幂最终会计算出答案一样,我们也最终会在这些不明意义的事情中实现目标。 题意:有 b 阅读全文
posted @ 2018-09-11 23:24 Hugh_Locke 阅读(224) 评论(0) 推荐(0) 编辑
摘要: http://codeforces.com/problemset/problem/165/E 题意 两个整数 x 和 y 是 兼容的,如果它们的位运算 "AND" 结果等于 0,亦即 a & b = 0 。例如,数 90 (10110102) 和 36 (1001002) 是兼容的,因为 10110 阅读全文
posted @ 2018-09-11 20:11 Hugh_Locke 阅读(338) 评论(0) 推荐(0) 编辑