题目描述
给N个数字和正整数K,问用K个乘号和N个数字组成表达式乘积最大是多少
样例输入
4 2
1231
样例输出
62
解题思路
经人提醒发现是道DP。。。dp[i][j]表示前i个数字用j个乘号得到的最大值
状态转移方程为 dp[i][j] = max(dp[p][j-1]*ans(p,i-1)) (ans(a,b)为数组s[a]到s[b]组成的数)(1...
分类:
其他好文 时间:
2015-02-05 23:25:30
阅读次数:
182
这道题花了些时间,首先提交时runtim error,然后发现时申请数组没有释放。最后整理下题目的思路,这道题是动态规划,不过比较麻烦。想了好久才推出来,递推公式为 Cn = 2*Cn-1 + C0*Cn-2 + C1*Cn-3 ...... + Cn-2*C0。得到递推公式代码就很快了,一遍过。p...
分类:
其他好文 时间:
2015-02-05 21:46:35
阅读次数:
172
1.背景 追随着buptwusuopu大神的脚步,最近在研习动态规划。动态规划应该叫一种解决问题的思想,记得又一次去某公司面试就被问到了这个。 多于动态规划的理解,大致是这样的,从空集合开始,每增加一个元素就求它的最优解,直到所有元素加进来,就得到了总的最优解。 比较典型的应用就是背包问题,有一个重量一定的包,有若干件物品,他们各自有不同的重量和价值,怎样背...
分类:
编程语言 时间:
2015-02-05 18:33:26
阅读次数:
213
一、基本概念动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移。一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划。二、基本思想与策略基本思想与分治法类似,也是将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子...
分类:
编程语言 时间:
2015-02-05 12:53:22
阅读次数:
238
这道题在小白书中的分类是动态规划,把题AC了之后在网上看解题报告后,多数解法也是DAG上的动态规划。但其实一个简单的深度优先就能解决问题了。首先将每数从大到小排序,再将各组按照排序后的第一个数字的大小进行从大到小排序。需要注意的是,记录各组数据的编号也要和数进行同步的排序。
#include
#include
#include
#include
#include
using names...
分类:
其他好文 时间:
2015-02-05 11:23:15
阅读次数:
118
动态规划题目做的真的很少,自己也不太熟练,这题也是连蒙带猜才弄出来。
dp[i]表示以data[i]结尾的最大分数,那么状态转移方程为:dp[i]=max(dp[j]+data[i],data[i])(0
#include
#include
#include
#include
#include
#include
#include
using namespace std;
const int N...
分类:
其他好文 时间:
2015-02-04 23:31:11
阅读次数:
344
题目链接:Longest Valid Parentheses
Given a string containing just the characters '(' and ')', find the length of the longest valid (well-formed) parentheses substring.
For "(()", the longest valid paren...
分类:
其他好文 时间:
2015-02-04 23:22:51
阅读次数:
189
数组分割——解题笔记
题目:有一个没有排序、元素个数为2n的正整数数组,要求:如何能把这个数组分割为元素个数为n的两个数组,并使两个子数组的和最接近。
分析:这道题目可以用动态规划求解,或者说是一个典型的0,1背包问题,对于第i的数,到底是放进去还是不放,就要看放了对结果有什么影响,不放对结果又有什么影响。而结果是依据题目而言的,这道题目中的结果就是数组之和...
分类:
编程语言 时间:
2015-02-04 16:41:10
阅读次数:
179
状态压缩动态规划(简称状压dp)是另一类非常典型的动态规划,通常使用在NP问题的小规模求解中,虽然是指数级别的复杂度,但速度比搜索快,其思想非常值得借鉴。
为了更好的理解状压dp,首先介绍位运算相关的知识。
1.’&’符号,x&y,会将两个十进制数在二进制下进行与运算,然后返回其十进制下的值。例如3(11)&2(10)=2(10)。
2.’|’符号,x|y,会将两个十进制数在二进制下进行或运...
分类:
其他好文 时间:
2015-02-04 16:36:47
阅读次数:
164
【题目】
Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which minimizes the sum of all numbers along its path.
Note: You can only move either down o...
分类:
其他好文 时间:
2015-02-04 16:34:20
阅读次数:
140