DP
文章平均质量分 69
动态规划算法
x .y
这个作者很懒,什么都没留下…
展开
-
信息学奥赛一本通--1271--潜水员
潜水员题目描述:潜水员为了潜水要使用特殊的装备。他有一个带2种气体的气缸:一个为氧气,一个为氮气。让潜水员下潜的深度需要各种的数量的氧和氮。潜水员有一定数量的气缸。每个气缸都有重量和气体容量。潜水员为了完成他的工作需要特定数量的氧和氮。他完成工作所需气缸的总重的最低限度的是多少?例如:潜水员有5个气缸。每行三个数字为:氧,氮的(升)量和气缸的重量:3 36 12010 25 1295 50 2501 45 1304 20 119如果潜水员需要5升的氧和60升的氮则总重最小为249(1,2原创 2021-03-01 17:35:02 · 527 阅读 · 0 评论 -
HDU--1421--搬寝室
题目描述:搬寝室是很累的,xhd深有体会.时间追述2006年7月9号,那天xhd迫于无奈要从27号楼搬到3号楼,因为10号要封楼了.看着寝室里的n件物品,xhd开始发呆,因为n是一个小于2000的整数,实在是太多了,于是xhd决定随便搬2k件过去就行了.但还是会很累,因为2k也不小是一个不大于n的整数.幸运的是xhd根据多年的搬东西的经验发现每搬一次的疲劳度是和左右手的物品的重量差的平方成正比(这里补充一句,xhd每次搬两件东西,左手一件右手一件).例如xhd左手拿重量为3的物品,右手拿重量为6的物品,原创 2021-02-24 19:54:28 · 137 阅读 · 0 评论 -
HDU--1176--免费馅饼
题目描述:都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼。说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的10米范围内。馅饼如果掉在了地上当然就不能吃了,所以gameboy马上卸下身上的背包去接。但由于小径两侧都不能站人,所以他只能在小径上接。由于gameboy平时老呆在房间里玩游戏,虽然在游戏中是个身手敏捷的高手,但在现实中运动神经特别迟钝,每秒种只有在移动不超过一米的范围内接住坠落的馅饼。现在给这条小径如图标上坐标:为了使问题简化,原创 2021-02-24 19:01:09 · 155 阅读 · 0 评论 -
51Nod 1201-石子归并(区间dp)
合并石子题目描述:在一个操场上一排地摆放着N堆石子。现要将石子有次序地合并成一堆。规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分。计算出将N堆石子合并成一堆的最小得分。【输入】第一行为一个正整数N (2≤N≤100);以下N行,每行一个正整数,小于10000,分别表示第i堆石子的个数(1≤i≤N)。【输出】一个正整数,即最小得分。【输入样例】713 7 8 16 21 4 18【输出样例】239解题思路:有两种方法:第一种是用动态规划原创 2020-10-12 17:08:04 · 289 阅读 · 2 评论 -
计蒜客 T-3219-大蒜数(DP)
如果一个数任意相邻两位均是质数,我们称之为 大蒜数。最小的大蒜数是两位数 11。蒜头君想知道 K 位数的大蒜数有多少个。输入格式输入为 1 个整数 K, (2≤K≤1000)。测试点编号 K1 K ==22-3 3≤K≤84-6 9≤K≤117-10 12<K≤1000输出格式输出为 1 个整数,为 K 位数的大蒜数的个数,结果对 10007 取模。输出时每行末尾的多余空格,不影响答案正确性样例输入5样例输出372大蒜数dp[i][j] 表示长度 i 以 j 结尾的方案原创 2020-08-26 14:14:49 · 941 阅读 · 0 评论 -
最大连续子序列
给定K个整数的序列{ N1, N2, …, NK },其任意连续子序列可表示为{ Ni, Ni+1, …,Nj },其中 1 <= i <= j <= K。最大连续子序列是所有连续子序列中元素和最大的一个,例如给定序列{ -2, 11, -4, 13, -5, -2 },其最大连续子序列为{ 11, -4, 13 },最大和为20。在今年的数据结构考卷中,要求编写程序得到最大和,现在增加一个要求,即还需要输出该子序列的第一个和最后一个元素。Input测试输入包含若干测试用例,原创 2020-08-18 15:00:59 · 249 阅读 · 0 评论 -
动态规划(最长上升子序列,最长公共子序列)
最长上升子序列一个数的序列bi,当b1<b2<…<bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1,a2,…,aN),我们可以得到一些上升的子序列(ai1,ai2,…,aiK),这里1≤i1<i2<…<iK≤N。比如,对于序列(1,7,3,5,9,4,8),有它的一些上升子序列,如(1,7),(3,4,8)等等。这些子序列中最长的长度是4,比如子序列(1,3,5,8)。你的任务,就是对于给定的序列,求出最长上升子序列的长度。【输入】输入的第一行是序列的原创 2020-08-14 14:15:49 · 674 阅读 · 0 评论 -
动态规划------背包问题详解
一、01背包有n件物品,每件物品占用的空间为w[i], 价值为p[i]。有容量为 V 的背包。求在容量允许的范围下,背包装入物品的最大价值。在当前为i,v的情况下,考察第i件物品。有两种情况。1、如果i物品的体积大于v,装不下了。就只能放弃。则最大价值不变。dp[i][v] = dp[i-1][v];2、如果i物品的体积不大于v,可以选择装入i或者放弃i。如果装入i,则剩余的容量变为v-w[i]。整个问题变为,先把i装入,再用v-w[i]的空间去装前i-1件物品。 dp[i][v] = dp[i原创 2020-08-05 00:12:03 · 4143 阅读 · 0 评论 -
最大子矩阵(动态规划c++)
题目:已知矩阵的大小定义为矩阵中所有元素的和。给定一个矩阵,你的任务是找到最大的非空(大小至少是1 × 1)子矩阵。比如,如下4 × 4的矩阵0 -2 -7 09 2 -6 2-4 1 -4 1-1 8 0 -2的最大子矩阵是9 2-4 1-1 8这个子矩阵的大小是15。【输入】输入是一个N×N的矩阵。输入的第一行给出N(0<N≤100)。再后面的若干行中,依次(首先从左到右给出第一行的N个整数,再从左到右给出第二行的N个整数……)给出矩阵中的N2个整数,整数原创 2020-08-03 17:34:25 · 7862 阅读 · 9 评论