![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
动态规划
文章平均质量分 77
在路上-小武
这个作者很懒,什么都没留下…
展开
-
hdu 1058 经典DP,不过优先队列也不错,输出格式注意
优先队列注意map的使用 DP重在思想,result记录最小的值,而用四个类似指针作用的变量,a,b,c,d.每次我们比较 result[i2] * 2, result[i3] * 3, result[i5] * 5, result[i7] * 7这四个元素的大小, 把最小的放到序列中, 并把对应的指针+1,直到生成需要的个数. 输出格式: 数字后面加 th,读音和原来的序数词是一样的,如原创 2012-08-03 16:40:56 · 390 阅读 · 0 评论 -
01背包,完全背包,多重背包
P01: 01背包问题 这是最基本的背包问题,每个物品最多只能放一次 题目 有N件物品和一个容量为V的背包。第i件物品的费用是c[i],价值是w[i]。求解将哪些物品装入背包可使这些物品的费用总和不超过背包容量,且价值总和最大。 基本思路 这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。 用子问题定义状态:即f[i][v]表示转载 2012-11-19 22:48:28 · 344 阅读 · 0 评论 -
nyoj 项链,dp(类似矩阵相乘)
项链 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 在Mars星球上,每个Mars人都随身佩带着一串能量项链。在项链上有N颗能量珠。能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数。并且,对于相邻的两颗珠子,前一颗珠子的尾标记一定等于后一颗珠子的头标记。因为只有这样,通过吸盘(吸盘是Mars人吸收能量的一种器官)的作用,这两颗珠子才能聚合成原创 2012-11-22 10:35:54 · 363 阅读 · 0 评论 -
nyoj 174Max Sequence&poj 2593(dp)
考察点:动态规划 思路:虽然题目给出了3000ms的时间,但考虑到数据量可以达到100000,如果用O(N^2)的算法的话,还是极有可能会超时的,于是决定采用这种O(N)时间效率的动规。在输入的同时,进行一次DP,计算出从左到右的最大值,并把它保存在数组dp的对应的下标元素中,这样之后,对于下标为i 的元素,它其中保存的便是前面所有元素可能的最大连续和。再从右到左进行一次DP,计算从右到原创 2012-12-13 09:51:58 · 342 阅读 · 0 评论 -
算法作业(最优二叉查找树)
import java.util.Scanner; public class Main { public static float p[],q[],c[][],w[][],root[][]; public static float max=Float.MAX_VALUE; public static void bestsolution(float root[][],int i,int原创 2013-04-09 07:03:52 · 588 阅读 · 0 评论