动态规划
文章平均质量分 70
柃歌
夏天的海边有冰淇淋口味的海风
展开
-
AcWing 3583. 整数分组(DP,双指针)
【题目描述】给定nnn个整数a1,a2,…,ana_1,a_2,\dots ,a_na1,a2,…,an。现在,请你从中挑选一些数,并将选出的数进行分组。要求:选出的数最多划分为kkk组(至少111组)。同一组内,任意两数之差的绝对值不超过555。所选出的数尽可能多。请问,最多可以选出多少个数进行分组?【输入格式】第一行包含两个整数nnn和kkk。第二行包含nnn个整数a1,a2,…,ana_1,a_2,\dots ,a_na1,a2,…,an。【输出格式】输出一个整原创 2022-04-18 16:33:33 · 692 阅读 · 0 评论 -
AcWing 3510. 最长公共子序列(DP,LIS,LCS)
【题目描述】给出两个长度为nnn的整数序列,求它们的最长公共子序列(LCS)的长度,保证第一个序列中所有元素都不重复。注意:第一个序列中的所有元素均不重复。第二个序列中可能有重复元素。一个序列中的某些元素可能不在另一个序列中出现。【输入格式】第一行包含一个整数nnn。接下来两行,每行包含nnn个整数,表示一个整数序列。【输出格式】输出一个整数,表示最长公共子序列的长度。【数据范围】1≤n≤1061≤n≤10^61≤n≤106序列内元素取值范围[1,106][1,10^6][1,原创 2022-04-15 13:46:01 · 249 阅读 · 0 评论 -
AcWing 3499. 序列最大收益(DP)
【题目描述】给定一个长度为mmm的整数序列a1,a2,…,ama_1,a_2,\dots ,a_ma1,a2,…,am。序列中每个元素的值aia_iai均满足1≤ai≤n1≤a_i≤n1≤ai≤n。当一个值为iii的元素和一个值为jjj的元素相邻时,可以产生的收益为wi,jw_{i,j}wi,j。现在,我们可以从序列中删除最多kkk个元素,删除一些元素后,原本不相邻的元素可能会变得相邻。序列的收益和为所有相邻元素对产生的收益之和,例如一个长度为333的整数序列1,3,21,3,21,3原创 2022-04-15 10:30:41 · 317 阅读 · 0 评论 -
【蓝桥杯算法练习题】复杂DP
一、AcWing 1050. 鸣人的影分身【题目描述】在火影忍者的世界里,令敌人捉摸不透是非常关键的。我们的主角漩涡鸣人所拥有的一个招数:多重影分身之术,就是一个很好的例子。影分身是由鸣人身体的查克拉能量制造的,使用的查克拉越多,制造出的影分身越强。针对不同的作战情况,鸣人可以选择制造出各种强度的影分身,有的用来佯攻,有的用来发起致命一击。那么问题来了,假设鸣人的查克拉能量为MMM,他影分身的个数为NNN,那么制造影分身时有多少种不同的分配方法?注意:影分身可以分配000点能量。分配方案原创 2022-03-31 16:13:52 · 1668 阅读 · 0 评论 -
洛谷P1280 尼克的任务(DP)
【题目描述】尼克每天上班之前都连接上英特网,接收他的上司发来的邮件,这些邮件包含了尼克主管的部门当天要完成的全部任务,每个任务由一个开始时刻与一个持续时间构成。尼克的一个工作日为nnn分钟,从第111分钟开始到第nnn分钟结束。当尼克到达单位后他就开始干活,公司一共有kkk个任务需要完成。如果在同一时刻有多个任务需要完成,尼克可以任选其中的一个来做,而其余的则由他的同事完成,反之如果只有一个任务,则该任务必需由尼克去完成,假如某些任务开始时刻尼克正在工作,则这些任务也由尼克的同事完成。如果某任务于第pp原创 2022-03-30 10:27:22 · 264 阅读 · 0 评论 -
【算法题归纳合集】动态规划-背包模型(2)
一、AcWing 12. 背包问题求具体方案【题目描述】有NNN件物品和一个容量是VVV的背包。每件物品只能使用一次。第iii件物品的体积是viv_ivi,价值是wiw_iwi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出字典序最小的方案。这里的字典序是指:所选物品的编号所构成的序列。物品的编号范围是1∼N1\sim N1∼N。【输入格式】第一行两个整数N,VN,VN,V,用空格隔开,分别表示物品数量和背包容积。接下来有NNN行,每行两个整数vi,wiv原创 2022-03-21 17:17:17 · 1124 阅读 · 0 评论 -
【算法题归纳合集】动态规划-背包模型(1)
一、AcWing 6. 多重背包问题 III【题目描述】有NNN种物品和一个容量是VVV的背包。第iii种物品最多有sis_isi件,每件体积是viv_ivi,价值是wiw_iwi。求解将哪些物品装入背包,可使物品体积总和不超过背包容量,且价值总和最大。输出最大价值。【输入格式】第一行两个整数,N,V(0<N≤1000,0<V≤20000)N,V(0<N≤1000,0<V≤20000)N,V(0<N≤1000,0<V≤20000),用空格隔开,分别表示原创 2022-03-20 13:59:31 · 1231 阅读 · 0 评论 -
【CF1633D】Make Them Equal(DP)
【题目描述】你有一个长度为nnn,初始全为111的数组aaa,和两个长度为nnn的数组b,cb,cb,c。你可以最多进行kkk次如下的操作:选择两个正整数i,xi,xi,x,使aia_{i}ai变成(ai+⌊aix⌋)\left( a_{i}+\left \lfloor \dfrac{a_{i}}{x} \right \rfloor \right)(ai+⌊xai⌋)。最后,如果ai=bia_{i}=b_{i}ai=bi,你将会获得cic_{i}ci的收益。最大化总收益。【输入格式】原创 2022-03-11 10:53:34 · 297 阅读 · 0 评论 -
洛谷P1417 烹调方案(DP,排序)
【题目描述】由于你的帮助,火星只遭受了最小的损失。但gw懒得重建家园了,就造了一艘飞船飞向遥远的earth星。不过飞船飞到一半,gw发现了一个很严重的问题:肚子饿了~gw还是会做饭的,于是拿出了储藏的食物准备填饱肚子。gw希望能在T时间内做出最美味的食物,但是这些食物美味程度的计算方式比较奇葩,于是绝望的gw只好求助于你了。【题目描述】一共有nnn件食材,每件食材有三个属性,ai,bia_i,b_iai,bi和cic_ici,如果在ttt时刻完成第iii样食材则得到ai−t∗bia_i-t*b原创 2022-03-10 08:59:22 · 157 阅读 · 0 评论 -
洛谷P1220 关路灯(区间DP,前缀和)
【题目描述】某一村庄在一条路线上安装了nnn盏路灯,每盏灯的功率有大有小(即同一段时间内消耗的电量有多有少)。老张就住在这条路中间某一路灯旁,他有一项工作就是每天早上天亮时一盏一盏地关掉这些路灯。为了给村里节省电费,老张记录下了每盏路灯的位置和功率,他每次关灯时也都是尽快地去关,但是老张不知道怎样去关灯才能够最节省电。他每天都是在天亮时首先关掉自己所处位置的路灯,然后可以向左也可以向右去关灯。开始他以为先算一下左边路灯的总功率再算一下右边路灯的总功率,然后选择先关掉功率大的一边,再回过头来关掉另一边的路原创 2022-03-09 22:05:58 · 514 阅读 · 0 评论 -
洛谷P1108 低价购买(DP,LIS)
【题目描述】“低价购买”这条建议是在奶牛股票市场取得成功的一半规则。要想被认为是伟大的投资者,你必须遵循以下的问题建议:“低价购买;再低价购买”。每次你购买一支股票,你必须用低于你上次购买它的价格购买它。买的次数越多越好!你的目标是在遵循以上建议的前提下,求你最多能购买股票的次数。你将被给出一段时间内一支股票每天的出售价(2162^{16}216范围内的正整数),你可以选择在哪些天购买这支股票。每次购买都必须遵循“低价购买;再低价购买”的原则。写一个程序计算最大购买次数。这里是某支股票的价格清单:日期原创 2022-03-09 19:40:14 · 404 阅读 · 0 评论 -
洛谷P2347 砝码称重(模拟,DP)
【题目描述】设有1g,2g,3g,5g,10g,20g1g,2g,3g,5g,10g,20g1g,2g,3g,5g,10g,20g的砝码各若干枚(其总重≤1000\le 1000≤1000)【输入格式】输入方式:a1,a2,a3,a4,a5,a6a_1,a_2,a_3,a_4,a_5,a_6a1,a2,a3,a4,a5,a6(表示1g1g1g砝码有a1a_1a1个,2g2g2g砝码有a2a_2a2个,…\dots…,20g20g20g砝码有a6a_6a6个)【输出格式】输出方式:原创 2022-03-07 22:36:37 · 735 阅读 · 0 评论 -
【CF1644C】Increase Subarray Sums(DP,贪心)
【题目描述】给定一个序列{an}\left\{a_n\right\}{an}与整数xxx,定义f(k)f(k)f(k)表示经过如下操作后,序列aaa中最大的连续子段和:将aaa中kkk个不同的位置上的数加上xxx。请求出f(k),k∈[0,n]f(k),k\in [0,n]f(k),k∈[0,n]。【输入数据】多组数据T(1≤T≤5000)T(1\leq T\leq 5000)T(1≤T≤5000)每组数据的第一行为n,x(1≤n≤5000,0≤x≤105)n,x(1\leq n\leq 5000原创 2022-03-06 10:55:14 · 427 阅读 · 2 评论 -
洛谷P1510 精卫填海(DP)
【题目描述】事实上,东海未填平的区域还需要至少体积为vvv的木石才可以填平,而西山上的木石还剩下nnn块,每块的体积和把它衔到东海需要的体力分别为kkk和mmm。精卫已经填海填了这么长时间了,她也很累了,她还剩下的体力为ccc。【输入格式】输入文件的第一行是三个整数:v,n,cv,n,cv,n,c。从第二行到第n+1n+1n+1行分别为每块木石的体积和把它衔到东海需要的体力。【输出格式】输出文件只有一行,如果精卫能把东海填平,则输出她把东海填平后剩下的最大的体力,否则输出Impossible。原创 2022-03-05 16:22:27 · 573 阅读 · 0 评论 -
洛谷P1192 台阶问题(DP)
【题目描述】有NNN级的台阶,你一开始在底部,每次可以向上迈最多KKK级台阶(最少111级),问到达第NNN级台阶有多少种不同方式。【输入格式】两个正整数N,KN,KN,K。【输出格式】一个正整数,为不同方式数,由于答案可能很大,你需要输出ansmod 100003ans\mod 100003ansmod100003后的结果。【数据范围】N≤105,K≤100N≤10^5,K≤100N≤105,K≤100【输入样例】5 2【输出样例】8【分析】状态表示:f[i]f[i]f[原创 2022-03-04 20:27:13 · 501 阅读 · 0 评论 -
【蓝桥杯算法练习题】数学与简单DP
一、AcWing 1205. 买不到的数目【题目描述】小明开了一家糖果店。他别出心裁:把水果糖包成444颗一包和777颗一包的两种。糖果不能拆包卖。小朋友来买糖的时候,他就用这两种包装来组合。当然有些糖果数目是无法组合出来的,比如要买101010颗糖。你可以用计算机测试一下,在这种包装情况下,最大不能买到的数量是171717。大于171717的任何数字都可以用444和777组合出来。本题的要求就是在已知两个包装的数量时,求最大不能组合出的数字。【输入格式】两个正整数n,mn,mn,m,原创 2022-03-02 10:39:12 · 338 阅读 · 0 评论 -
AcWing 1884. COW(状态机DP)
【题目描述】奶牛贝茜在她最喜欢的牧场中发现了一块石碑,上面刻有神秘的碑文。碑文的文字似乎来自一种神秘的古代语言,可看作一个只包含C,O,WC,O,WC,O,W三种字符的字符串。尽管贝茜无法解密该文字,但是她很欣赏C,O,WC,O,WC,O,W按顺序构成她最喜欢的单词COWCOWCOW。她想知道COWCOWCOW在碑文中一共出现了多少次。她不介意C,O,WC,O,WC,O,W之间是否存在其他字符,只要这三个字符按正确的顺序出现即可。她也不介意多个不同的COWCOWCOW是否共享了一些字符。例如,原创 2022-01-25 11:26:08 · 224 阅读 · 0 评论 -
【算法题归纳合集】动态规划-最长上升子序列模型
前言最长上升子序列模型(LIS)(LIS)(LIS)属于线性DP的一种,基础模板题讲解传送门:【模板题】线性DP(数字三角形、LIS、LCS、编辑距离),本文将通过一系列该模型的扩展题对其进行更加深入的分析。一、AcWing 1017. 怪盗基德的滑翔翼二、AcWing 1014. 登山三、AcWing 482. 合唱队形四、AcWing 1012. 友好城市五、AcWing 1016. 最大上升子序列和六、AcWing 1010. 拦截导弹七、AcWing 187. 导弹防御系统八、Ac原创 2021-10-27 20:50:10 · 412 阅读 · 0 评论 -
【算法题归纳合集】动态规划-数字三角形模型
一、AcWing 1015. 摘花生【题目描述】Hello Kitty想摘点花生送给她喜欢的米老鼠。她来到一片有网格状道路的矩形花生地(如下图),从西北角进去,东南角出来。地里每个道路的交叉点上都有种着一株花生苗,上面有若干颗花生,经过一株花生苗就能摘走该它上面所有的花生。Hello Kitty只能向东或向南走,不能向西或向北走。问Hello Kitty最多能够摘到多少颗花生。【输入格式】第一行是一个整数TTT,代表一共有多少组数据。接下来是TTT组数据。每组数据的第一行是两个整数,分原创 2021-10-27 17:44:12 · 215 阅读 · 0 评论 -
AcWing 126. 最大的和(DP,递推)
【题目描述】给定一个包含整数的二维矩阵,子矩形是位于整个阵列内的任何大小为1×11×11×1或更大的连续子阵列。矩形的总和是该矩形中所有元素的总和。在这个问题中,具有最大和的子矩形被称为最大子矩形。例如,下列数组:0 -2 -7 09 2 -6 2-4 1 -4 1-1 8 0 -2其最大子矩形为:9 2-4 1-1 8它拥有最大和151515。【输入格式】输入中将包含一个N×NN×NN×N的整数数组。第一行只输入一个整数NNN,表示方形二维数组的大小。从第二行开始,输原创 2021-10-25 19:24:29 · 102 阅读 · 0 评论 -
洛谷P1115 最大子段和(DP)
【题目描述】给出一个长度为nnn的序列aaa,选出其中连续且非空的一段使得这段和最大。【输入格式】第一行是一个整数,表示序列的长度nnn。第二行有nnn个整数,第iii个整数表示序列的第iii个数字aia_iai。【输出格式】输出一行一个整数表示答案。【数据范围】1≤n≤2×105,−104≤ai≤1041\leq n\leq 2×10^5,-10^4\leq a_i\leq 10^41≤n≤2×105,−104≤ai≤104【输入样例】72 -4 3 -1 2 -4 3【输出原创 2021-10-25 18:24:54 · 137 阅读 · 0 评论 -
AcWing 1371. 货币系统(DP,完全背包)
【题目描述】给定VVV种货币(单位:元),每种货币使用的次数不限。不同种类的货币,面值可能是相同的。现在,要你用这VVV种货币凑出NNN元钱,请问共有多少种不同的凑法。【输入格式】第一行包含两个整数VVV和NNN。接下来的若干行,将一共输出VVV个整数,每个整数表示一种货币的面值。【输出格式】输出一个整数,表示所求总方案数。【数据范围】1≤V≤251≤V≤251≤V≤251≤N≤100001≤N≤100001≤N≤10000答案保证在long long范围内。【输入样例】3 10原创 2021-10-24 21:41:30 · 2031 阅读 · 0 评论 -
洛谷P1006 [NOIP2008 提高组] 传纸条(四维DP)
【题目描述】小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题。一次素质拓展活动中,班上同学安排坐成一个mmm行nnn列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了。幸运的是,他们可以通过传纸条来进行交流。纸条要经由许多同学传到对方手里,小渊坐在矩阵的左上角,坐标(1,1)(1,1)(1,1),小轩坐在矩阵的右下角,坐标(m,n)(m,n)(m,n)。从小渊传到小轩的纸条只可以向下或者向右传递,从小轩传给小渊的纸条只可以向上或者向左传递。在活动进行中,小渊希望给小轩传原创 2021-10-20 21:51:07 · 153 阅读 · 0 评论 -
洛谷P1004 [NOIP2000 提高组] 方格取数(四维DP)
【题目描述】设有N×NN \times NN×N的方格图(N≤9)(N \le 9)(N≤9),我们将其中的某些方格中填入正整数,而其他的方格中则放入数字000。如下图所示(见样例):A 0 0 0 0 0 0 0 0 0 0 13 0 0 6 0 0 0 0 0 0 7 0 0 0 0 0 0 14 0 0 0 0 0 21 0 0 0 4 0 0 0 0 15 0 0 0 0 0 0原创 2021-10-20 21:36:38 · 245 阅读 · 0 评论 -
洛谷P1025 [NOIP2001 提高组] 数的划分(DP)
【题目描述】将整数nnn分成kkk份,且每份不能为空,任意两个方案不相同(不考虑顺序)。例如:n=7,k=3n=7,k=3n=7,k=3,下面三种分法被认为是相同的。1,1,51,1,51,1,51,5,11,5,11,5,15,1,15,1,15,1,1问有多少种不同的分法。【输入格式】n,k(6<n≤200,2≤k≤6)n,k(6<n \le 200,2 \le k \le 6)n,k(6<n≤200,2≤k≤6)【输出格式】111个整数,即不同的分法。【输入样例原创 2021-10-20 11:31:57 · 324 阅读 · 0 评论 -
洛谷P1198 [JSOI2008]最大数(ST表)
【题目描述】现在请求你维护一个数列,要求提供以下两种操作:① 查询操作。语法:Q L功能:查询当前数列中末尾LLL个数中的最大的数,并输出这个数的值。限制:LLL不超过当前数列的长度。(L>0)(L>0)(L>0)②插入操作。语法:A n功能:将nnn加上ttt,其中ttt是最近一次查询操作的答案(如果还未执行过查询操作,则t=0t=0t=0),并将所得结果对一个固定的常数DDD取模,将所得答案插入到数列的末尾。限制:nnn是整数(可能为负数)并且在长整范围内。注意:初原创 2021-10-19 17:28:35 · 197 阅读 · 0 评论 -
洛谷P1140 相似基因(DP)
【题目描述】两个基因的相似度的计算方法如下:对于两个已知基因,例如AGTGATGAGTGATGAGTGATG和GTTAG和GTTAG和GTTAG,将它们的碱基互相对应。当然,中间可以加入一些空碱基(−)(-)(−),例如:这样,两个基因之间的相似度就可以用碱基之间相似度的总和来描述,碱基之间的相似度如下表所示:那么相似度就是:(−3)+5+5+(−2)+(−3)+5+(−3)+5=9(-3)+5+5+(-2)+(-3)+5+(-3)+5=9(−3)+5+5+(−2)+(−3)+5+(−3)+5=原创 2021-10-18 19:44:56 · 435 阅读 · 0 评论 -
洛谷P1077 摆花(DP,记忆化搜索)
【题目描述】小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共mmm盆。通过调查顾客的喜好,小明列出了顾客最喜欢的nnn种花,从111到nnn标号。为了在门口展出更多种花,规定第iii种花不能超过aia_iai 盆,摆花时同一种花放在一起,且不同种类的花需按标号的从小到大的顺序依次摆列。试编程计算,一共有多少种不同的摆花方案。【输入格式】第一行包含两个正整数nnn和mmm,中间用一个空格隔开。第二行有nnn个整数,每两个整数之间用一个空格隔开,依次表示a1,a2,⋯ ,ana_1,a原创 2021-10-17 10:01:15 · 206 阅读 · 0 评论 -
洛谷P1057 传球游戏(DP)
【题目描述】上体育课的时候,小蛮的老师经常带着同学们一起做游戏。这次,老师带着同学们一起做传球游戏。游戏规则是这样的:nnn个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球,每个同学可以把球传给自己左右的两个同学中的一个(左右任意),当老师再次吹哨子时,传球停止,此时,拿着球没有传出去的那个同学就是败者,要给大家表演一个节目。聪明的小蛮提出一个有趣的问题:有多少种不同的传球方法可以使得从小蛮手里开始传的球,传了mmm次以后,又回到小蛮手里。两种传球方法被视作不同的方法,当且仅当原创 2021-10-15 13:20:06 · 142 阅读 · 0 评论 -
洛谷P1122 最大子树和(树形DP)
【题目描述】小明对数学饱有兴趣,并且是个勤奋好学的学生,总是在课后留在教室向老师请教一些问题。一天他早晨骑车去上课,路上见到一个老伯正在修剪花花草草,顿时想到了一个有关修剪花卉的问题。于是当日课后,小明就向老师提出了这个问题:一株奇怪的花卉,上面共连有NNN朵花,共有N−1N−1N−1条枝干将花儿连在一起,并且未修剪时每朵花都不是孤立的。每朵花都有一个“美丽指数”,该数越大说明这朵花越漂亮,也有“美丽指数”为负数的,说明这朵花看着都让人恶心。所谓“修剪”,意为:去掉其中的一条枝条,这样一株花就成了两株,原创 2021-10-15 09:16:22 · 142 阅读 · 0 评论 -
【CF4D】Mysterious Present(双关键字LIS)
【题目描述】给出一个限制(w,h)(w,h)(w,h)和nnn个物品的二维信息(wi,hi)(w_i,h_i)(wi,hi)求物品二维都满足wi>w,hi>hw_i>w,h_i>hwi>w,hi>h的前提下的最长二维严格上升子序列以及其长度(wi>wi−1,hi>hi−1)(w_i>w_{i-1},h_i>h_{i-1})(wi>wi−1,hi>hi−1)如果找不到任何一个物品满足条件,只需输出一行000【输入描原创 2021-10-14 13:49:55 · 187 阅读 · 0 评论 -
AcWing 482 / 洛谷P1091 合唱队形(线性DP,LIS)
【题目描述】NNN位同学站成一排,音乐老师要请其中的(N−K)(N-K)(N−K)位同学出列,使得剩下的KKK位同学排成合唱队形。合唱队形是指这样的一种队形:设KKK位同学从左到右依次编号为1,2…,K1,2…,K1,2…,K,他们的身高分别为T1,T2,…,TKT_1,T_2,…,T_KT1,T2,…,TK,则他们的身高满足T1<…<Ti>Ti+1>…>TK(1≤i≤K)T_1<…<T_i>T_i+1>…>T_K(1≤i≤K)T1&l原创 2021-10-14 12:24:24 · 112 阅读 · 0 评论 -
洛谷P1040 加分二叉树(区间DP)
【题目描述】设一个nnn个节点的二叉树treetreetree的中序遍历为(1,2,3,…,n)(1,2,3,…,n)(1,2,3,…,n),其中数字1,2,3,…,n1,2,3,…,n1,2,3,…,n为节点编号。每个节点都有一个分数(均为正整数),记第iii个节点的分数为did_idi,treetreetree及它的每个子树都有一个加分,任一棵子树subtreesubtreesubtree(也包含treetreetree本身)的加分计算方法如下:subtree的左子树的加分×subtree的右子树原创 2021-10-14 11:37:13 · 141 阅读 · 0 评论 -
【模板题】树形DP(没有上司的舞会)
【题目描述】UralUralUral大学有NNN名职员,编号为1∼N1∼N1∼N。他们的关系就像一棵以校长为根的树,父节点就是子节点的直接上司。每个职员有一个快乐指数,用整数HiH_iHi给出,其中1≤i≤N1≤i≤N1≤i≤N。现在要召开一场周年庆宴会,不过,没有职员愿意和直接上司一起参会。在满足这个条件的前提下,主办方希望邀请一部分职员参会,使得所有参会职员的快乐指数总和最大,求这个最大值。【输入格式】第一行一个整数NNN。接下来NNN行,第iii行表示iii号职员的快乐指数HiH_i原创 2021-10-13 21:19:35 · 102 阅读 · 0 评论 -
【模板题】记忆化搜索(滑雪)
【题目描述】给定一个RRR行CCC列的矩阵,表示一个矩形网格滑雪场。矩阵中第iii行第jjj列的点表示滑雪场的第iii行第jjj列区域的高度。一个人从滑雪场中的某个区域内出发,每次可以向上下左右任意一个方向滑动一个单位距离。当然,一个人能够滑动到某相邻区域的前提是该区域的高度低于自己目前所在区域的高度。下面给出一个矩阵作为例子: 1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9在给定矩阵中,一条可行的滑行原创 2021-10-13 17:25:07 · 117 阅读 · 0 评论 -
【模板题】状态压缩DP(蒙德里安的梦想 / 最短Hamilton路径)
一、蒙德里安的梦想【题目描述】求把N×MN×MN×M的棋盘分割成若干个1×21×21×2的长方形,有多少种方案。例如当N=2,M=4N=2,M=4N=2,M=4时,共有555种方案。当N=2,M=3N=2,M=3N=2,M=3时,共有333种方案。如下图所示:【输入格式】输入包含多组测试用例。每组测试用例占一行,包含两个整数NNN和MMM。当输入用例N=0,M=0N=0,M=0N=0,M=0时,表示输入终止,且该用例无需处理。【输出格式】每个测试用例输出一个结果,每个结果占一行。【数原创 2021-10-13 17:03:26 · 196 阅读 · 0 评论 -
【模板题】数位统计DP(计数问题)
【题目描述】给定两个整数aaa和bbb,求aaa和bbb之间的所有数字中0∼90∼90∼9的出现次数。例如,a=1024,b=1032a=1024,b=1032a=1024,b=1032,则aaa和bbb之间共有999个数如下:1024 1025 1026 1027 1028 1029 1030 1031 1032其中0出现101010次,1出现101010次,2出现777次,3出现333次等等…【输入格式】输入包含多组测试数据。每组测试数据占一行,包含两个整数aaa和bbb。当读入一行为0原创 2021-10-12 14:39:35 · 142 阅读 · 0 评论 -
【模板题】计数类DP(整数划分)
【题目描述】一个正整数nnn可以表示成若干个正整数之和,形如:n=n1+n2+…+nkn=n_1+n_2+…+n_kn=n1+n2+…+nk,其中n1≥n2≥…≥nk,k≥1n_1≥n_2≥…≥n_k,k≥1n1≥n2≥…≥nk,k≥1。我们将这样的一种表示称为正整数nnn的一种划分。现在给定一个正整数nnn,请你求出nnn共有多少种不同的划分方法。【输入格式】共一行,包含一个整数nnn。【输出格式】共一行,包含一个整数,表示总划分数量。由于答案可能很大,输出结果请对109+71原创 2021-10-12 11:35:56 · 194 阅读 · 0 评论 -
【模板题】区间DP(石子合并)
【题目描述】设有NNN堆石子排成一排,其编号为1,2,3,…,N1,2,3,…,N1,2,3,…,N。每堆石子有一定的质量,可以用一个整数来描述,现在要将这NNN堆石子合并成为一堆。每次只能合并相邻的两堆,合并的代价为这两堆石子的质量之和,合并后与这两堆石子相邻的石子将和新堆相邻,合并时由于选择的顺序不同,合并的总代价也不相同。例如有444堆石子分别为1,3,5,21,3,5,21,3,5,2, 我们可以先合并1、21、21、2堆,代价为444,得到4,5,24,5,24,5,2, 又合并1、21、原创 2021-10-11 20:49:41 · 155 阅读 · 0 评论 -
【模板题】线性DP(数字三角形、LIS、LCS、编辑距离)
一、数字三角形【题目描述】给定一个如下图所示的数字三角形,从顶部出发,在每一结点可以选择移动至其左下方的结点或移动至其右下方的结点,一直走到底层,要求找出一条路径,使路径上的数字的和最大。 7 3 8 8 1 0 2 7 4 44 5 2 6 5【输入格式】第一行包含整数nnn,表示数字三角形的层数。接下来nnn行,每行包含若干整数,其中第iii行表示数字三角形第iii层包含的整数。【输出格式】输出一个整数,表原创 2021-10-10 22:37:03 · 207 阅读 · 0 评论