该题是一道DP题,核心思想如下: 某个区间一定是这个区间内的某两个子区间合成的(这两个子区间互补,即这两个区间加起来等于大区间), 所以我们枚举所有的情况,取个最大值即可。因为最初是从2堆石子开始无法选择,到数量大了就可以择优,体现出DP的优势。 DP[ i ] [ j ]表示 i 到 j 区间的最 ...
分类:
其他好文 时间:
2018-04-30 11:46:12
阅读次数:
147
nyoj-0708-ones 题意:用1,+,*,(,). 这四个符号组成表达式表达数s(0 <= s <= 10000),且1最少时1的的个数 状态转移方程: dp[i] = min(dp[i-1] + 1, dp[j] + dp[i-j]); 代码: ...
分类:
其他好文 时间:
2018-04-28 22:15:16
阅读次数:
143
nyoj-0469-擅长排列的小明 II 思路:递推分析:为了简便起见,我们用Ai代表第i个数字 , 由于A1一直是1,所以A2只能是2或3。假设dp[n]表示1->n这个序列的方案数 1.当A2=2时,从A2到An的排列(2~n)相当于从A1到An-1的排列(1~n-1)(把每个数字都加1),一共 ...
分类:
其他好文 时间:
2018-04-28 01:30:57
阅读次数:
209
单调递增子序列(二) 时间限制:1000 ms | 内存限制:65535 KB 难度:4 单调递增子序列(二) 时间限制:1000 ms | 内存限制:65535 KB 难度:4 给定一整型数列{a1,a2...,an}(0<n<=100000),找出单调递增最长子序列,并求出其长度。 如:1 9 ...
分类:
其他好文 时间:
2018-04-27 23:51:26
阅读次数:
149
nyoj 0269 VF 意思大致为从1-10^9数中找到位数和为s的个数 分析:利用动态规划思想,一位一位的考虑,和s的范围为1-81 状态定义:dp[i][j] = 当前所有i位数的和为j的个数 除了最高位的取值为1-9(最高位不能为0),其余位的取值都为0-9,所有我们可以最开始初始化dp[1 ...
分类:
其他好文 时间:
2018-04-27 02:36:23
阅读次数:
172