![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
DP学习笔记
DP学习笔记
小白太白
这个作者很懒,什么都没留下…
展开
-
算法训练 结点选择
算法训练 结点选择 时间限制:1.0s 内存限制:256.0MB问题描述有一棵 n 个节点的树,树上每个节点都有一个正整数权值。如果一个点被选择了,那么在树上和它相邻的点都不能被选择。求选出的点的权值和最大是多少?输入格式第一行包含一个整数 n 。接下来的一行包含 n 个正整数,第 i 个正整数代表点 i 的权值。接下来一共 n-1 行,每行描述树上的一条边。输...转载 2019-05-01 17:27:16 · 894 阅读 · 0 评论 -
算法训练 最大的算式
算法训练 最大的算式 时间限制:1.0s 内存限制:256.0MB问题描述 题目很简单,给出N个数字,不改变它们的相对位置,在中间加入K个乘号和N-K-1个加号,(括号随便加)使最终结果尽量大。因为乘号和加号一共就是N-1个了,所以恰好每两个相邻数字之间都有一个符号。例如: N=5,K=2,5个数字分别为1、2、3、4、5,可以加成: 1*2*(3+4+5)=24 1...转载 2019-05-09 21:15:26 · 210 阅读 · 0 评论 -
最长公共子序列(LCS)
最长公共子序列(LCS)长公共子序列(LCS)是一个在一个序列集合中(通常为两个序列)用来查找所有序列中最长子序列的问题。一个数列 ,如果分别是两个或多个已知数列的子序列,且是所有符合此条件序列中最长的,则称为已知序列的最长公共子序列。分析import java.util.Scanner;public class Main { public static void mai...转载 2019-05-09 20:44:19 · 183 阅读 · 0 评论 -
最长上升子序列(LIS)
最长上升子序列(LIS)指一个序列中最长的单调递增的子序列。(与子串的差别是子串是连续的,子序列不一定连续,但是相对顺序一致)分析法一:动态规划。状态转移方程为dp[i] = max(dp[i], dp[j] + 1)【注意代码中另一个条件,实际无需处理】边界设置:dp[i] = 1法二:贪心+二分查找定义一个数组存储最长上升子序列,每次使得这个序列(该序列是递增...转载 2019-05-09 20:39:33 · 152 阅读 · 0 评论 -
算法训练 K好数
算法训练 K好数 时间限制:1.0s 内存限制:256.0MB问题描述如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数。求L位K进制数中K好数的数目。例如K = 4,L = 2的时候,所有K好数为11、13、20、22、30、31、33 共7个。由于这个数目很大,请你输出它对1000000007取模后的值。输入格式输入包含两个正整数...转载 2019-05-01 15:55:09 · 531 阅读 · 2 评论 -
国王和金矿
题目有一个国家发现了5座金矿,每座金矿的黄金储量不同,需要参与挖掘的工人数也不同。第一座金矿200金且需要3个人挖;第二座金矿300金且需要4个人挖;第三座金矿350金且需要3个人挖;第四座金矿400金且需要5个人挖;第五座金矿500金且需要5个人挖。参与挖矿工人的总数是10人。每座金矿要么全挖,要么不挖,不能派出一半人挖取一半金矿。要想得到尽可能多的黄金,应该选择挖取...原创 2019-05-01 13:27:34 · 802 阅读 · 0 评论 -
01背包
01背包概述01背包是在M件物品取出若干件放在空间为W的背包里,每件物品的体积为W1,W2至Wn,与之相对应的价值为P1,P2至Pn。01背包是背包问题中最简单的问题。01背包的约束条件是给定几种物品,每种物品有且只有一个,并且有权值和体积两个属性。在01背包问题中,因为每种物品只有一个,对于每个物品只需要考虑选与不选两种情况。如果不选择将其放入背包中,则不需要处理。如果选择将其放入背包中,由...原创 2019-05-01 12:58:57 · 345 阅读 · 0 评论 -
剪气球串
题目 小明买了一些彩色的气球用绳子串在一条线上,想要装饰房间,每个气球都染上了一种颜色,每个气球的形状都是各不相同的。我们用1到9一共9个数字表示不同的颜色,如12345则表示一串5个颜色各不相同的气球串。但小明希望得到不出现重复颜色的气球串,那么现在小明需要将这个气球串剪成多个较短的气球串,小明一共有多少种剪法?如原气球串12345的一种是剪法是剪成12...转载 2019-04-29 08:57:23 · 369 阅读 · 0 评论 -
分金子
题目A、B两伙马贼意外地在一片沙漠中发现了一处金矿,双方都想独占金矿,但各自的实力都不足以吞下对方,经过谈判后,双方同意用一个公平的方式来处理这片金矿。处理的规则如下:他们把整个金矿分成n段,由A、B开始轮流从最左端或最右端占据一段,直到分完为止。马贼A想提前知道他们能分到多少金子,因此请你帮忙计算他们最后各自拥有多少金子?(两伙马贼均会采取对己方有利的策略)输入测试数据包含多组输...转载 2019-04-29 08:40:10 · 199 阅读 · 0 评论 -
投资分配问题
题目现有数量为a(万元)的资金,计划分配给n 个工厂,用于扩大再生产。假设 xi 为分配给第 i 个工厂的资金数量(万元);gi(xi)为第i 个工厂得到资金后提供的利润值(万元)。问题:如何确定各工厂的资金数,使得总的利润为最大。分析根据题目分析可以得到下面的关系:令:fk(x) = 以数量为x 的资金分配给前k 个工厂,所得到的最大利润值。用动态规划求解,就是求 f...原创 2019-04-23 21:09:49 · 2194 阅读 · 0 评论 -
动态规划入门
动态规划入门一、多段图问题(多阶段决策)已知两点之间的花费,求从 0 点到 9 点的最小花费路径。思路对多段图的边(u, v),用表示边上的权值,将从源点s到终点t的最短路径记为d(s, t)则从源点0到终点9的最短路径d(0, 9)由下式确定:而对于从1--9、2--9、3--9的最小花费,可由下式表示:......依次类推,最后递推到7--9、8-...原创 2019-04-23 18:30:18 · 193 阅读 · 0 评论