
NOIP 动态规划
_Tham
If you sleep now , you will hava a dream. But if you study now , you will achieve your dream.
展开
-
0—1背包归纳总结
0-1背包问题: 有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。这个问题的特点是:每种物品只有一件,可以选择放或者不放。算法基本思想:利用动态规划思想 ,子问题为:f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。其状态转移原创 2014-05-04 16:43:58 · 1155 阅读 · 0 评论 -
树形动态规划(树状DP)小结
树状动态规划定义之所以这样命名树规,是因为树形DP的这一特殊性:没有环,dfs是不会重复,而且具有明显而又严格的层数关系。利用这一特性,我们可以很清晰地根据题目写出一个在树(型结构)上的记忆化搜索的程序。而深搜的特点,就是“不撞南墙不回头”。这一点在之后的文章中会详细的介绍。 首先是扫盲,介绍几条名词的专业解释以显示我的高端(大部分人可以略过,因为学习到树规的人一下应该都懂……原创 2015-04-29 23:10:03 · 33193 阅读 · 6 评论 -
树形动态规划(树形DP)入门问题—初探 & 训练
树形DP入门poj 2342 Anniversary party 先来个题入门一下~题意:某公司要举办一次晚会,但是为了使得晚会的气氛更加活跃,每个参加晚会的人都不希望在晚会中见到他的直接上司,现在已知每个人的活跃指数和上司关系(当然不可能存在环),求邀请哪些人(多少人)来能使得晚会的总活跃指数最大。解题思路:任何一个点的取舍可以看作一种决策,那么状态就是在某个点取的时原创 2015-04-29 22:40:03 · 32257 阅读 · 10 评论 -
动态规划经典入门
通过金矿模型介绍动态规划 对于动态规划,每个刚接触的人都需要一段时间来理解,特别是第一次接触的时候总是想不通为什么这种方法可行,这篇文章就是为了帮助大家理解动态规划,并通过讲解基本的01背包问题来引导读者如何去思考动态规划。本文力求通俗易懂,无异性,不让读者感到迷惑,引导读者去思考,所以如果你在阅读中发现有不通顺的地方,让你产生错误理解的地方,让你难得读懂的地方,请跟贴指出转载 2014-06-01 14:23:24 · 1051 阅读 · 0 评论 -
数学之美系列二十四 -- 谈谈动态规划与如何设计动态规划算法
数学之美——动态规划今 年九月二十三日,Google、T-Mobile 和 HTC 宣布了第一款基于开源操作系统 Android 的 3G 手机,其中一个重要的功能是利用全球卫星定位系统实现全球导航。这个功能在其它手机中早已使用,并且早在五六年前就已经有实现这一功能的车载设备出售。其 中的关键技术只有两个:第一是利用卫星定位;第二根据用户输入的起终点,在地图上规划最短路线或者最快路线。后者原创 2015-04-27 22:53:37 · 2040 阅读 · 0 评论 -
深入理解合并类动态规划——合并石子
【题目描述】在一个圆形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。 试设计出1个算法,计算出将N堆石子合并成1堆的最小得分和最大得分.【输入格式】数据的第1行试正整数N,1≤N≤100,表示有N堆石子.第2行有N个数,分别表示每堆石子的个数.【输出格式】 输出共2行,原创 2015-05-14 15:00:02 · 2288 阅读 · 1 评论 -
0-1背包问题的四种写法
本节回顾0-1背包的基本模型,关于它的实现有很多种写法,这里对不同实现做个简单列举,主要是写代码练手了,主要有以下几方面内容:==0-1背包问题定义 & 基本实现==0-1背包使用滚动数组压缩空间==0-1背包使用一维数组==0-1背包恰好背满==0-1背包输出最优方案========================================0-1背包问题原创 2015-05-20 13:21:26 · 17193 阅读 · 1 评论 -
DAG 上的动态规划(训练指南—大白书)
有向无环图(DAG,Directed Acyclic Graph)上的动态规划是学习动态规划的基础。很多问题都可以转化为DAG上的最长路、最短路或路径计数问题。一、矩形嵌套题目描述: 有n个矩形,每个矩形可以用两个整数a,b描述,表示它的长和宽。矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a解题思路: 如何求DAG中不固定起点的最长路径呢原创 2015-11-04 16:42:48 · 4041 阅读 · 0 评论 -
Usaco 4.3.1 Buy Low, Buy Lower 逢低吸纳详细解题报告
问题描述:"逢低吸纳”是炒股的一条成功秘诀。如果你想成为一个成功的投资者,就要遵守这条秘诀: "逢低吸纳,越低越买" 这句话的意思是:每次你购买股票时的股价一定要比你上次购买时的股价低.按照这个规则购买股票的次数越多越好,看看你最多能按这个规则买几次。 给定连续的N天中每天的股价。你可以在任何一天购买一次股票,但是购买时的股价一定要比你上次购买时的股价低。写一个程序,求出最多能原创 2015-09-14 10:41:17 · 2856 阅读 · 0 评论 -
括号配对问题
NYIST ACMer括号配对问题I时间限制:3000 ms | 内存限制:65535 KB难度:3描述现在,有一行括号序列,请你检查这行括号是否配对。输入第一行输入一个数N(0输出每组输入数据的输出占一行,如果该字符串中所含的括号是配对的,则输出Yes,如果不配对则输出No样例输入3[(])(])([[]()])转载 2016-04-21 14:28:08 · 1062 阅读 · 0 评论 -
线性动态规划——解最长公共子序列问题
动态规划法经常会遇到复杂问题不能简单地分解成几个子问题,而会分解出一系列的子问题。简单地采用把大问题分解成子问题,并综合子问题的解导出大问题的解的方法,问题求解耗时会按问题规模呈幂级数增加(分治思想,递归方法。往往会由于数据大导致递归层次过多而超时或爆栈,即使采用记忆化等优化策略,仍然可能解决不了问题)。原创 2014-10-28 17:41:45 · 1231 阅读 · 0 评论 -
合并类动态规划,石子归并,合并石子解题报告
设有N堆沙子排成一排,其编号为1,2,3,…,N(N<=100)。每堆沙子有一定的数量。现要将N堆沙子并成为一堆。归并的过程只能每次将相邻的两堆沙子堆成一堆,这样经过N-1次归并后成为一堆。找出一种合理的归并方法,使总的代价最小。原创 2014-10-30 19:47:36 · 10595 阅读 · 0 评论 -
NOIP2013 花匠解题报告
题目描述花匠栋栋种了一排花,每株花都有自己的高度。花儿越长越大,也越来越挤。栋栋决定把这排中的一部分花移走,将剩下的留在原地,使得剩下的花能有空间长大,同时,栋栋希望剩下的花排列得比较别致。具体而言,栋栋的花的高度可以看成一列整数ℎ1, ℎ2, … , ℎn。设当一部分花被移走后,剩下的花的高度依次为g1, g2, … , gm,则栋栋希望下面两个条件中至少有一个满足:条件 A:对原创 2014-08-02 19:23:44 · 2115 阅读 · 0 评论 -
动态规划入门策略—“最长公共子序列”
算法学习——动态规划策略入门一、概念 动态规划策略,一种分治策略。和贪婪策略一样,通常是用来解决最优解问题。分治故名就是将问题分解为几个子问题来解决,动态规划的特点就是分解的子问题中(子问题又可以分解成子问题)每次选择选择最优解。 动态规划主要的特点是在做决定前她知道所有子问题的信息。 动态规划的两个重要要素是:1)最优子结原创 2014-06-01 14:45:45 · 1029 阅读 · 0 评论 -
机器分配
机器分配w总公司拥有高效生产设备M台,准备分给下属的N个公司。各分公司若获得这些设备,可以为国家提供一定的盈利。问:如何分配这M台设备才能使国家得到的盈利最大?求出最大盈利值。其中Mw数据文件格式为:第一行保存两个数,第一个数是设备台数M,第二个数是分公司数N。接下来是一个M*N的矩阵,表明了第I个公司分配J台机器的盈利原创 2014-06-12 15:09:26 · 1568 阅读 · 0 评论 -
0—1背包问题,回溯实现
0-1背包:问题描述原创 2014-06-01 10:19:41 · 948 阅读 · 0 评论 -
动态规划总结
动态规划总结(by Amber) 动态规划总结by Amber1. 按状态类型分写在前面:从状态类型分,并不表示一题只从属于一类。其实一类只是一种状态的表示方法。可以好几种方法组合成一个状态,来解决问题。1.1. 编号(长度)动态规划共性总结本类的状态是基础的基础,大部分的动态规划都要用到它,成为一个维。一般来说,有两转载 2014-06-01 15:21:05 · 1081 阅读 · 0 评论 -
动态规划 入门学习
动态规划引言问题引入 对于一个2×2的表格,从左上角走到右下角,过程只可以向右或向下移动,共有6种方式(如图),那么,对于一个10×10的表格呢? 递归解法n设坐标以左上角为(0,0),向右记为R,为x轴的增方向;向下记为D,为y轴的增方向。当前坐标为C,表格的宽=高=S。从(0,0)开始,我们有两种选择,R和D。如果第一步选择R时,C=(1,0),翻译 2014-06-01 15:18:31 · 1405 阅读 · 1 评论 -
NOIP 2000 乘积最大
分析: 这一题虽然是加强版的,但也就是数据范围比原题大了点儿,思路都一样,在原题的基础上加一个高精度乘法就OK了,下面说一下算法:看到题首先想到的就是动态规划,你会发现这一题极像一道经典题目———添加号问题,只不过那个是加法。设F[i][j]表示前j个数中加入i个乘号的最大值,则有状态转移方程:F[i][j]=MAX(F[i-1][k]*Num[k 1][j])(iF[i-1][k]表转载 2014-08-04 12:04:55 · 973 阅读 · 0 评论 -
0-1 背包 四种写法
[NOIP2005] 采药辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的原创 2014-09-09 15:15:02 · 937 阅读 · 0 评论 -
连续最大和,数字类区间问题
例题:1.N个数排成一排,你可以任意选择连续的若干个数,算出它们的和。问该如何选择才能使得和的绝对值最小。如:N=8时,8个数如下:-20 90 -30 -20 80 -70 -60 125如果我们选择1到4这4个数,和为20,还可以选择6到8这3个数,和为-5,|-5|=5,该方案获得的和的绝对值最小。输入格式:原创 2014-10-09 17:00:05 · 1846 阅读 · 0 评论 -
NOIP 2013 花匠
题目描述 Description花匠栋栋种了一排花,每株花都有自己的高度。花儿越长越大,也越来越挤。栋栋决定把这排中的一部分花移走,将剩下的留在原地,使得剩下的花能有空间长大,同时,栋栋希望剩下的花排列得比较别致。具体而言,栋栋的花的高度可以看成一列整数h_1, h_2, … , h_n。设当一部分花被移走后,剩下的花的高度依次为g_1, g_2, … , g_m,则栋栋希望下转载 2014-08-02 16:59:13 · 1208 阅读 · 0 评论 -
什么是动态规划算法,常见的动态规划问题分析与求解
理解动态规划动态规划中递推式的求解方法不是动态规划的本质。我曾经作为省队成员参加过NOI,保送之后也给学校参加NOIP的同学多次讲过动态规划,我试着讲一下我理解的动态规划,争取深入浅出。希望你看了我的答案,能够喜欢上动态规划。0. 动态规划的本质,是对问题状态的定义 和状态转移方程 的定义。引自维基百科dynamic programming is a metho原创 2015-04-27 23:09:04 · 9833 阅读 · 1 评论