摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1257 一开始的时候还用了单调栈维护,toNext[i] 表示第i个往右边,第一个比它小的数。 我还以为一路这样弄下去就搞定了。 但是有数据卡我了。 6 5 6 5 4 3 2 1 5 4 3 2 1 这样其实只需
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1260 用dp[i]表示处理到第i个的时候用时最短。 那么每一个新的i,有两个选择,第一个就是自己不和前面的组队,第二就是和前面的组队。 那么dp[i] = min(dp[i - 1] + a[i], dp[i -
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1176 首先可以处理出整张地图的状态。 book[T][POS]表示第T秒,在第pos个地方有多少个馅饼。 dp[i][j]表示第i秒的时候,在第j个位置能得到的最大值。 边界值:dp[1][4] = book[1
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1114 完全背包的题目,要求输出最小价值。然后一定要把给出的背包重量全部用完。 就是问一个背包为k的大小,n件物品,能装的最小价值,并且一定是用了k个背包容量。 用dp[i]表示背包容量为i得时候,能收录的最小价值
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1069 意思就是给定n种箱子,每种箱子都有无限个,每种箱子都是有三个参数(x, y, z)来确定。 你可以选任意两个参数作为长和宽,第三个是高。 然后要求把箱子搭起来,使得高度最高。 能搭的前提是下面那个箱子的长和
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1087 设dp[i]表示去到这个位置时的最大和值。(就是以第i个为结尾的时候的最大值) 那么只要扫描一遍dp数组,就能得到ans,因为最后一步可以无条件到达终点。 那么可以用O(n^2)转移,枚举每一个位置,其中要
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1074 题目是给定n个科目(n <= 15)然后每个科目有最迟完成时间和需要多少天去完成。 现在要你安排一个顺序去做这些科目,使得扣分最小,要求输出字典序最小的解。 考虑用dp[i]表示完成了i的二进制那些科目时,
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1024 刚开始的时候没看懂题目,以为一定要把那n个数字分成m对,然后求m对中和值最大的那对 但是不是,题目说的只是选出m对,所以有些数字是可以不用的。 那么就用 dp[i][j]表示前j个数,分成了i段,其中第a[
阅读全文
摘要:http://codeforces.com/contest/103/problem/D 对于b大于 sqrt(n)的,暴力处理的话,那么算出每个的复杂度是sqrt(n),就是把n分成了sqrt(n)段, 其他的,b小于sqrt(n)的,那么不同 b值最多只有sqrt(n)个,但是询问可能达到q个。考
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=5904 给定两个序列,要求算出其最长的公共上升子序列, 并且这个子序列公差是1. 考虑dp dpa[val]表示在a数组中,以val这个数字结尾,最长上升1的子序列。dpa[val] = dpa[val - 1]
阅读全文
摘要:http://acm.uestc.edu.cn/#/problem/show/923 给定一堆数字,求其所有数字的gcd。 现在要删除最多的数字,使得剩下的数字的gcd和原来的一样。 设dp[i][val]表示在前i个数中,得到val这个数字所需的最小数字,怎么得到val这个数字?就是gcd得到。
阅读全文
摘要:恢复内容开始 https://www.hackerrank.com/contests/world-codesprint-6/challenges/abbr 给定两个串str和sub。 对于每个str中的小写字母,可以变成大写,其他小写字母,能无条件删除,问其能否变成sub 一开始的时候贪心,用个数组
阅读全文
摘要:想了很久都想不出怎么dp,然后发现有些例子,如果你开始不确定起始值的话,是不能dp的,每种状态都有可能,所以只能二分一个答案,确定开始的val值,来dp了。 #include <cstdio> #include <cstdlib> #include <cstring> #include <cmath
阅读全文
摘要:题意:给定一个句子str,和一个单词sub,这个单词sub可以翻译成两种不同的意思,问这个句子一共能翻译成多少种不能的意思 例如:str:hehehe sub:hehe 那么,有**he、he**、和hehehe三种不同的意思, 考虑一下aaadaaa这种情况?sub:aa 前面的aaa有三种,后面
阅读全文