
动态规划
keynumber
这个作者很懒,什么都没留下…
展开
-
吃土豆
描述Bean-eating is an interesting game, everyone owns an M*N matrix, which is filled with different qualities beans. Meantime, there is only one bean in any 1*1 grid. Now you want to eat the beans a原创 2013-03-31 12:50:38 · 816 阅读 · 0 评论 -
最大子序列积
测试代码,有错误请指正,谢谢!#include#define max(a, b) (((a)>(b))? (a) : (b))#define min(a, b) (((a)<(b))? (a) : (b))double maxMul(double a[], int n){ //p1,p2代表当前最大的子序列乘积,且p1,p2大于0,小于0时无效 //q1原创 2013-04-26 20:09:05 · 1050 阅读 · 0 评论 -
poj 3356 编辑距离(空间优化)
AGTCTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 7780 Accepted: 3087DescriptionLet x and y be two strings over some finite alphabet A. We would lik原创 2013-04-17 18:15:48 · 1315 阅读 · 0 评论 -
NYIST 10 skiing
skiing时间限制:3000 ms | 内存限制:65535 KB难度:5描述Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子 1 2 3原创 2013-04-16 21:42:32 · 807 阅读 · 0 评论 -
动态规划总结
动态规划总结by Amber1. 按状态类型分写在前面:从状态类型分,并不表示一题只从属于一类。其实一类只是一种状态的表示方法。可以好几种方法组合成一个状态,来解决问题。1.1. 编号(长度)动态规划共性总结本类的状态是基础的基础,大部分的动态规划都要用到它,成为一个维。一般来说,有两种编号的状态:状态(i)表示前i个元素转载 2013-04-17 00:06:02 · 1157 阅读 · 0 评论 -
NYIST 36 最长公共子序列(空间优化)
最长公共子序列时间限制:3000 ms | 内存限制:65535 KB难度:3描述咱们就不拐弯抹角了,如题,需要你做的就是写一个程序,得出最长公共子序列。tip:最长公共子序列也称作最长公共子串(不要求连续),英文缩写为LCS(Longest Common Subsequence)。其定义是,一个序列 S ,如果分别是两个或多个已知序列的子序列,且是所有符合原创 2013-04-16 23:39:25 · 1183 阅读 · 0 评论 -
NYIST 15 The Triangle(空间优化)
The Triangle时间限制:1000 ms | 内存限制:65535 KB难度:4描述73 88 1 02 7 4 44 5 2 6 5(Figure 1)Figure 1 shows a number triangle. Write a program that calculates the highest sum of原创 2013-04-16 23:14:11 · 892 阅读 · 0 评论 -
NYIST 37 回文字符串
回文字符串时间限制:3000 ms | 内存限制:65535 KB难度:4描述所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的,比如"aba"。当然,我们给你的问题不会再简单到判断一个字符串是不是回文字符串。现在要求你,给你一个字符串,可在任意位置添加字符,最少再添加几个字符,可以使这个字符串成为回文字符串。输入第一行给出整数N(0原创 2013-04-16 22:04:42 · 1008 阅读 · 0 评论 -
NYIST 15 括号匹配(二) 动态规划
括号匹配(二)时间限制:1000 ms | 内存限制:65535 KB难度:6描述给你一个字符串,里面只包含"(",")","[","]"四种符号,请问你需要至少添加多少个括号才能使这些括号匹配起来。如:[]是匹配的([])[]是匹配的((]是不匹配的([)]是不匹配的输入第一行输入一个正整数N,表示测试数据组数(N每组测试数原创 2013-04-16 19:59:44 · 2148 阅读 · 0 评论 -
NYIST 311 (背包问题优化)
#include#include#define max(a,b) (a)>(b)?(a):(b)int main(){ int n,m,v,i,j,d[50005],a,b; scanf("%d",&n); while(n--) { scanf("%d%d",&m,&v); memset(d,-100,sizeof(d)); d[0]=0; for(i=0;i<m;原创 2013-04-01 22:50:12 · 798 阅读 · 0 评论 -
NYIST 289 0-1背包问题优化
#include #include #define max(a,b) (((a)>(b))?(a):(b))int w[1001], v[1001], dp[1001];int main(){ int n, c; while(scanf("%d %d", &n, &c) && (c+n)) { memset(dp, 0, sizeof(dp));原创 2013-04-01 21:53:59 · 823 阅读 · 0 评论 -
给定的N个正数中选取若干个数之和最接近M
面试题:从给定的N个正数中选取若干个数之和最接近M分析:1. N个正数全部比M打的话,直接取最小值即可;2. 否则先背包求一遍和比M小的最大值S,然后再背包求一下和比M+M-S小的最大值,然后两者中更接近M的即为所求。代码改天写原创 2013-03-28 00:02:15 · 2683 阅读 · 0 评论 -
NYIST 708 ones
ones时间限制:1000 ms | 内存限制:65535 KB难度:3描述Given a positive integer N (0<=N<=10000), you are to find an expression equals to N using only 1,+,*,(,). 1 should not appear continuously, i.原创 2013-05-14 22:57:06 · 984 阅读 · 0 评论