动态规划

YACS-2022.4-银组

https://www.iai.sh.cn/contest 2022.04 银组,理论上 \(100+100+30+100\)。 T1 上锁的抽屉 题目描述 有一个抽屉柜里竖排了 \(n\) 只抽屉。每个抽屉有一把锁。若要把一只抽屉『锁死』,就必须锁上它自己,而且要把它的上一层抽屉也锁上。请问有多少 ... »

动态规划 洛谷P1616 疯狂的采药

动态规划 洛谷P1616 疯狂的采药 同样也是洛谷的动态规划一个普及-的题目,接下来分享一下我做题代码 看到题目,没很认真的看数据大小,我就提交了我的代码: 1 //动态规划 洛谷P1616 疯狂的采药 2 #include<iostream> 3 #include<cmath> 4 using n ... »

【动态规划】数字三角形4

题目描述 数字三角形必须经过某一个点,使之走的路程和最大 输入格式 第1行n,表示n行&#160;&lt;=25第2到n+1行为每个的权值第n+2行为两个数x,y表示必须经过的点 输出格式 最大值 分 »

Dawn-Star

动态规划(DP)

动态规划( Dongtai Planning Dynamic Programming,简称DP) 多阶段决策过程的最优化问题 在现实生活中,有一类活动的过程,由于它的特殊性,可将过程分成若干个互相联系的阶段,在它的每一阶段都需要作出决策,从而使整个过程达到最好的活动效果。当然,各个阶段决策的选取不是 ... »

【算法】动态规划系列【一】【背包问题】

博客推行版本更新,成果积累制度,已经写过的博客还会再次更新,不断地琢磨,高质量高数量都是要追求的,工匠精神是学习必不可少的精神。因此,大家有何建议欢迎在评论区踊跃发言,你们的支持是我最大的动力,你们敢投,我就敢肝 ... »

动态规划之装配线调度问题 - youxin

一、问题描述 装配线调度问题如下: Colonel汽车公司在有两条装配线的工厂内生产汽车,一个汽车底盘在进入每一条装配线后,在每个装配站会在汽车底盘上安装不同的部件,最后完成的汽车从装配线的末端离开。 »

youxin

《Cracking the Coding Interview》——第9章:递归和动态规划——题目8

2014-03-20 04:04 题目:给你不限量的1分钱、5分钱、10分钱、25分钱硬币,凑成n分钱总共有多少种方法? 解法:理论上来说应该是有排列组合的公式解的,但推导起来太麻烦而且换个数据就又得重推了,所以我还是用动态规划解决。 代码: 1 // 9.8 Given unlimited quarters(25 cents), dimes(10 cents), nickels(5 cent »

动态规划(1)

设计思路: 1.输入数组b; 2.用sum表示最大子数组和; 3.初始化c,sum值为啊b[0]; 4.进行循环,若c&amp;lt;0;则c=b[0],否则c=c+b[i]; 5.若sum&amp;lt;c;则sum=c; »

洛谷P1280 && caioj 1085 动态规划入门(非常规DP9:尼克的任务)

这道题我一直按照往常的思路想 f[i]为前i个任务的最大空暇时间 然后想不出来怎么做…… 后来看了题解 发现这里设的状态是时间,不是任务 自己思维还是太局限了,题做得太少。 很多网上题解都反着做,那么麻烦干嘛 设f[i]为前i时间内的最大空暇时间。 这里是更新后来的状态,和以前不一样。 如果i为某个任务的开始时间,则 f[i+t-1] = max(f[i+t-1], f[i]) 也就是继承过去 »

几种常见的动态规划问题模型及优化策略

斜率优化   假设一个动态规划问题的状态表示为dp[i][j][k]......,通常最外层的几重循环分别是对i,j,k......等进行遍历,然后接下来几重循环(通常只有一重)遍历对dp[i][j][k]......这个状态的分解,并取出其中的最优解。斜率优化直观上的实现方式就是把各种分解方式映射为平面上的点集,一种决策方式对应一条经过点集中一个点的直线,这条直线的斜率是一个跟状态相关的常数(不 »

紫书 例题 9-1 UVa 1025 ( DAG的动态规划)

影响到状态的只有时间和在哪个车站(空间),所以可以设f[i][j]是时刻i的时候在第j个车站的最少等待时间 因为题目中的等待时间显然是在0时刻1车站,所以答案为f[0][1],那么就提醒我们从大推到小,然后可以发现 d[T][n]一定等于0,所以这个可以作为边界条件。同时时刻0的每一个车站都是正无穷,相当于把i = n的时候 全部初始化好了。 然后有三种决策 (1)在当前车站等一分钟 f[i] »

动态规划(1)——算法导论(16)

我们先从两个问题入手,来学习动态规划。 1. 钢条切割问题 1.1 提出问题 某公司想要把一段长度为n的钢条切割成若干段后卖出,目前市场上长度为i(0&amp;lt;i&amp;lt;10,i为整数)的钢条的价格行情如下: 长度i 1 2 3 4 5 6 7 8 9 10 其他 价格pi 1 5 8 9 10 17 17 20 24 30 0 不考虑切割的成本(即切割成多少段随意),请你给出一个使收益 »

砝码称重问题求解:动态规划与母函数方法

  砝码称重问题:设有1g、2g、3g、5g、10g、20g的砝码各若干枚(其质量&amp;lt;=1000g),求出用他们能称出的质量的种类数(不包括质量为0的情况)。   一、动态规划方法求解   设dp[1000]数组为标记数组。当dp[i]=0时,表示质量为i的情况,目前没有称出;当dp[i]=1时,表示质量为i的情况已经称出。   本题目中有多个砝码,我们顺序处理每一个砝码。   当处理第j个砝 »

动态规划练习1

题目描述: 在ls森林里有一只很能砍树的樵夫lw,他左手扛狂暴药水,右手握着雷神之斧,白天砍树,晚上喝狂暴药水。这天他接到了国王给他的一个任务:砍掉两颗树。设两颗树的耐久值都为x(各自独立)。而lw有n(n&amp;lt;=100)把不同的斧头,设第i把斧头每a[i]秒种能消耗第一棵树1点耐久值,或者每b[i]秒消耗第二棵树1点耐久值。对于一个斧头来说,砍树对象可以变换,即可以砍a[i]秒a,再砍b[i] »

动态规划之一数塔

从倒数第二列开始查找   核心代码: a[i][j]+=max(a[i+1][j],a[i+1][j+1]); a[i][j] 加上他下面的两个数中的最大者…… 到最后a[0][0]就是最终的最大值。 #include &amp;lt;iostream&amp;gt; #include&amp;lt;algorithm&amp;gt; #define maxn 100 using namespace std; int m »

BZOJ1090 [SCOI2003]字符串折叠 区间动态规划 字符串

去博客园看该题解 题目传送门 - BZOJ1090   题意概括   折叠的定义如下:     1. 一个字符串可以看成它自身的折叠。记作S     2. X(S)是X(X&amp;gt;1)个S连接在一起的串的折叠。   n&amp;lt;=100.让你求折叠之后的最小长度。   题解   (据说字符串的题有通用做法?——hash+乱搞??)   首先预处理出从第i个位置开始的连续j个字符最多重复了几次 »

动态规划DP的优化

写一写要讲什么免得忘记了。DP的优化。 大概围绕着&quot;是什么&quot;,&quot;有什么用&quot;,&quot;怎么用&quot;三个方面讲. 主要是《算法竞赛入门经典》里的题目讲解,但是有些过于简单的删去了,添加了一些不怎么简单的省选题目作为例子 这里的DP优化都是涉及到O(nk)到O(nk-1)方法比较巧妙也有用到数学里面的定理之类。 所以秉着由易到难的原则,安排内容如下: 专题1:动态规划基础知识和计数DP、数位DP(几大类DP的类型 »

10.Regular Expression Matching(Hard 动态规划)

Implement regular expression matching with support for '.' and '*'. '.' Matches any single character. '*' Matches zero or more of the preceding element. The matching should cover the entire input str »