动态规划
文章平均质量分 58
Tony L.Du
风吹浪打,不忘初心
展开
-
51Nod 1085 背包问题(01背包 )
题目连接51Nod 1085 背包问题 题目描述在N件物品取出若干件放在容量为W的背包里,每件物品的体积为W1,W2……Wn(Wi为整数),与之相对应的价值为P1,P2……Pn(Pi为整数)。求背包能够容纳的最大价值。 Input第1行,2个整数,N和W中间用空格隔开。N为物品的数量,W为背包的容量。(1 <= N <= 100,1 <= W <= 10000) 第2 - N + 1行,原创 2016-03-07 21:12:29 · 1561 阅读 · 0 评论 -
Poj 1458 Common Subsequence 最长非连续序列
题目描述 求最长相同序列,非连续,abc与ac 最长相同序列为2相关问题, 戳: 最长公共子序列长度 最长上升子序列长度思路: dp[i][j] 表示:a串中前i个元素 与 b中前j个元素中最长相同序列长度 分两种情况: 1) a[i] == b[j] 则 dp[i][j] = dp[i-1][j-1]+1 它坐上方+1 2) a[i] != b[j] 则原创 2016-04-19 17:37:22 · 534 阅读 · 0 评论 -
最长公共子序列
求两个字符串的最长公共子序列:思想: dp[i][j] 表示:a串中前i个元素 与 b中前j个元素中最长公共子序列长度 分两种情况: 1) a[i] == b[j] 则 dp[i][j] = dp[i-1][j-1]+1 它左上方+1,表示a(i-1)与b(i-1)最长的加一 2) a[i] != b[j] 则 dp[i][j] = 0/*******************原创 2016-04-19 17:55:05 · 546 阅读 · 0 评论 -
51Nod 1009 数字1的数量(数位dp)
题目连接: 51Nod 1009 数字1的数量(数位dp)题目描述: 给定一个十进制正整数N,写下从1开始,到N的所有正数,计算出其中出现所有1的个数。 例如:n = 12,包含了5个1。1,10,12共包含3个1,11包含2个1,总共5个1。Input 输入N(1 <= N <= 10^9)Output 输出包含1的个数Input示例 12Output示例原创 2016-05-03 19:05:49 · 1308 阅读 · 0 评论 -
HDU 1257 最少拦截系统
Description 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.某天,雷达捕捉到敌国的导弹来袭.由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹. 怎么办呢?多搞几套系统呗!你说说倒蛮容易,成本呢?成本是个大问题啊.所以俺就到这里来求救了,请帮助原创 2016-04-19 14:09:55 · 437 阅读 · 0 评论 -
最长回文子串-Manacher算法(详解)
定义: 回文串:一个字符串, 逆置之后,与原串相同; 回文子串: 一个字符串的子串(连续),是回文串.则该子串为整个字符串的一个回文子串. 最长回文子串:一个字符串中最长的回文子串.求最长回文子串最容易想的方法1(dp): 先将串逆置,再与原串求最长公共子序列(LCS)(o(n^2)), //时间O(n^2) 空间O(f(n^2));方法2(纯暴力): 两重循环枚举起点原创 2016-04-11 15:07:25 · 7330 阅读 · 2 评论 -
CODE[VS] 1043 方格取数
题目链接: CODE[VS] 1043 方格取数题目描述 Description 设有N * N的方格图(N<=10,我们将其中的某些方格中填入正整数,而其他的方格中则放入数字0。某人从图的左上角的A 点出发,可以向下行走,也可以向右走,直到到达右下角的B点。在走过的路上,他可以取走方格中的数.此人从A点到B 点共走两次,试找出2条这样的路径,使得取得的数之和为最大。思路:跟传纸条是一个原创 2016-04-05 17:11:49 · 948 阅读 · 0 评论 -
CODE[VS] 1039 数的划分
题目链接:CODE[VS] 1039 数的划分状态转移方程: dp[i][j]:表示数字i被分成j个数字之和的方法共有多少种 数字i分成j个数字之和共有几种方法:可以等价为:(1)+(2) (1)数字i-j被分为j个数字之和(i-j +(1×j) = i) = 数字i由j个(不含1)数字相加(任意数字!=1)的和(每个组合每项+1) (2)i-1 被分为j-1个数字原创 2016-03-11 22:06:20 · 639 阅读 · 0 评论 -
CODE[VS] 1017 乘积最大
题目链接: CODE[VS] 1017 乘积最大题目描述 Description 今年是国际数学联盟确定的“2000——世界数学年”,又恰逢我国著名数学家华罗庚先生诞辰90周年。在华罗庚先生的家乡江苏金坛,组织了一场别开生面的数学智力竞赛的活动,你的一个好朋友XZ也有幸得以参加。活动中,主持人给所有参加活动的选手出了这样一道题目: 设有一个长度为N的数字串,要求选手使用K个乘号将原创 2016-03-11 17:33:56 · 724 阅读 · 0 评论 -
CODE[VS] 1014 装箱问题
题目链接: CODE[VS] 1014 装箱问题题目描述 Description 有一个箱子容量为V(正整数,0<=V<=20000),同时有n个物品(0<n<=30),每个物品有一个体积(正整数)。 要求n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。输入描述 Input Description 一个整数v,表示箱子容量 一个整数n,表示有n个物品原创 2016-03-10 21:12:27 · 1395 阅读 · 0 评论 -
UVa 1025 - A Spy in the Metro
题目链接 UVa 1025 A Spy in the Metro问题描述 Secret agent Maria was sent to Algorithms City to carry out an especially dangerous mission. After several thrilling events we nd her in the rst station原创 2016-03-10 17:21:39 · 790 阅读 · 0 评论 -
动态规划初步总结(1)(51Nod,CODE[VS]为例题)
相关题目链接: CODE-VS 1220 数字三角形 51Nod 1002 数塔取数问题51Nod 1083 矩阵取数问题1.数字三角形第一题和第二题一样,数字三角形问题,此处写三种不同的代码,但是总的动态规划思想是一致的。 如果熟悉回溯法,可能会发现这是一个动态的决策问题:每次有两种选择:向下(左下)走或向右下走,如果用回溯法求出所有路线,就可以从中选出最优路线。但是效率太低,n层的数组三角形原创 2016-03-10 15:24:18 · 2474 阅读 · 0 评论 -
51Nod 1007 正整数分组
1007 正整数分组 将一堆正整数分为2组,要求2组的和相差最小。 例如:1 2 3 4 5,将1 2 4分为1组,3 5分为1组,两组和相差1,是所有方案中相差最少的。Input 第1行:一个数N,N为正整数的数量。 第2 - N+1行,N个正整数。 (N <= 100, 所有正整数的和 <= 10000)Output 输出这个最小差Input示例原创 2016-04-02 18:28:39 · 1914 阅读 · 0 评论 -
CODE[VS] 1219 骑士游历
题目链接: CODE【VS】1219骑士游历题目描述 Description 设有一个n*m的棋盘(2≤n≤50,2≤m≤50),如下图,在棋盘上有一个中国象棋马。 规定: 1)马只能走日字 2)马只能向右跳 问给定起点x1,y1和终点x2,y2,求出马从x1,y1出发到x2,y2的合法路径条数。输入描述 Input Description 第一行原创 2016-03-09 22:02:55 · 777 阅读 · 0 评论 -
CODE[VS] 1169 传纸条
题目链接: CODE[VS] 1169 传纸条题目描述 Description 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题。一次素质拓展活动中,班上同学安排做成一个m行n列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了。幸运的是,他们可以通过传纸条来进行交流。纸条要经由许多同学传到对方手里,小渊坐在矩阵的左上角,坐标(1,1),小轩坐在矩阵的右下角原创 2016-03-09 21:21:45 · 533 阅读 · 0 评论 -
CODE[VS] 1154 能量项链
题目链接:CODD[VS] 1154 能量项链 题目描述 Description在Mars星球上,每个Mars人都随身佩带着一串能量项链。在项链上有N颗能量珠。能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数。并且,对于相邻的两颗珠子,前一颗珠子的尾标记一定等于后一颗珠子的头标记。因为只有这样,通过吸盘(吸盘是Mars人吸收能量的一种器官)的作用,这两颗珠子才能聚合成一颗珠子,同原创 2016-03-08 17:39:27 · 531 阅读 · 0 评论 -
最长递增子序列问题
题目链接:CODE【VS】1576 最长严格上升子序列 题目描述: 给出长度为N的数组,找出这个数组的最长递增子序列。(递增子序列是指,子序列的元素是递增的) 例如:5 1 6 8 2 4 5 10,最长递增子序列是1 2 4 5 10。Input 第1行:1个数N,N为序列的长度(2 <= N <= 50000) 第2 - N + 1行:每行1个数,对应序列的元素(-10^9 <= S原创 2016-03-07 17:00:16 · 1303 阅读 · 0 评论 -
51Nod 1086 背包问题 V2(二进制多重背包)
题目链接:51Nod 1086 背包问题 V2问题描述: 有N种物品,每种物品的数量为C1,C2……Cn。从中任选若干件放在容量为W的背包里,每种物品的体积为W1,W2……Wn(Wi为整数),与之相对应的价值为P1,P2……Pn(Pi为整数)。求背包能够容纳的最大价值。Input 第1行,2个整数,N和W中间用空格隔开。N为物品的种类,W为背包的容量。(1 <= N <= 100,1 <=原创 2016-03-18 14:27:12 · 1290 阅读 · 0 评论 -
2016西电校赛网络赛 Problem I 万神的竞赛
Problem I 万神的竞赛 现有 n 门竞赛,万神可以参加每门竞赛至多 1 次。参加第 i 门竞赛会花费 万神 w i 点体力,并增加万神的智商 v i 点。万神共有 W 点体力,那么万神通过 参加竞赛,至多能增加多少智商呢?输入格式 输入包含多组数据(至多 20 组,其中大数据不超过 10 组),请处理到文件结束。 每组数据,第 1 行包含 2 个整数 n, W ,原创 2016-04-22 14:39:50 · 801 阅读 · 0 评论