dp:记忆化搜索
ProLightsfxjh
这个作者很懒,什么都没留下…
展开
-
Topcoder SRM 413 (Div 2) 1000.InfiniteSequence
Let's consider an infinite sequence A defined as follows: A0 = 1; Ai = A[i/p] + A[i/q] for all i >= 1, where [x] denotes the floor function of x. (see Notes) You will be given n, p and q. Return the n-th element of A (index is 0-based).原创 2016-04-14 19:20:21 · 998 阅读 · 0 评论 -
2016 UESTC Training for Dynamic Programming D - 柱爷的恋爱 区间dp、记忆化搜索
记忆化搜索 dp[a, b] 表示 [a, b) 内的方案数; 如果line[a] 要去掉, 则直接转移 dp[a, b] = dfs(a+1, b); 如果line[a]不去掉的, 那么如果line[a] 是'('就去找line[i] == ')',如果'['就找line[i] == ']', 找到一个算一个, 同时 [a+1, i) 和 [i+1, b)也要合法序列 然后dfs(a + 1, i) * dfs(i+1, b); 然后调用dfs(0,n) 就好了,找出[0,n) 内的方案数: 复杂度O(n原创 2016-05-17 11:45:47 · 1133 阅读 · 0 评论 -
Codeforces Round #389 (Div. 2) E. Santa Claus and Tangerines 二分+贪心+记忆化搜索
题意:有n个橘子,每个橘子可以分成ai瓣,但每次只能把 一个完整的橘子或者由一些把构成的部分橘子 分成尽可能相等的两部分,即如果瓣数是偶数则当前只能分成相等的2部分,如果是奇数则分成2部分其中一部分比另一部分多1,然后把这些得到的橘子或者瓣分给k个小朋友,其中小朋友们得到瓣数中的最小值是答案,要求这个答案尽可能大 二分+贪心+记忆化搜索 由于每个小朋友只能得到一个橘子或者一些由瓣构成的部分橘子,所答案最大为max{ai} 这里ans 属于[1, 1e7],故在(0, 1e7 + 1)内]对答案进行二分(不会原创 2017-01-12 01:25:00 · 939 阅读 · 0 评论