动态规划
算法小猪
unknow.
展开
-
教主的花园 动态规划
教主的花园(garden.pas/c/cpp)教主有着一个环形的花园,他想在花园周围均匀地种上n棵树,但是教主花园的土壤很特别,每个位置适合种的树都不一样,一些树可能会因为不适合这个位置的土壤而损失观赏价值。教主最喜欢3种树,这3种树的高度分别为10,20,30。教主希望这一圈树种得有层次感,所以任何一个位置的树要比它相邻的两棵树的高度都高或者都低,并且在此条件下,教主想要你设计出一套方案,使得观赏价值之和最高。输入格式输入的第1行为一个正整数n,表示需要种的树的棵树。接下来n行,每行3个不超过1原创 2020-08-08 21:49:07 · 541 阅读 · 0 评论 -
搬书【dp】
题目描述有三堆书,分别有i,j,k本,已知每堆书从下到上各本书的重量,每次搬书只能从任意一堆的最上面取,请你设计一个方案,使得花费的力气最大。每次取书体力消耗都会加大,这里用体力系数表示,取第一本书时,体力系数为1 ,第二本时为2,依次类推,而每次体力消耗值为体力系数和书的重量之积。图例最累的取书方式为:31+92+23+104=67【输入格式】第一行为3个数,分别为i,j,k第二行到第四行分别为每堆从下到上每本书的重量【输出格式】输出最累方式的体力消耗总值【输入样例】3 2 42 3原创 2020-07-24 21:58:07 · 279 阅读 · 0 评论 -
国王【状压dp】
题目描述原题来自:SGU 223在n×nn×nn×n 的棋盘上放 kkk 个国王,国王可攻击相邻的 888个格子,求使它们无法互相攻击的方案总数。输入只有一行,包含两个整数 nnn和 kkk。输出每组数据一行为方案总数,若不能够放置则输出 00。样例输入【样例输入1】3 2【样例输入2】4 4样例输出【样例输出1】16【样例输出2】79数据范围与提示对于全部数据,1≤n≤10,0≤k≤n21≤n≤10,0≤k≤n^21≤n≤10,0≤k≤n2。题解:技巧:一般状压的题原创 2020-07-24 21:41:15 · 531 阅读 · 0 评论 -
纪念品-2019CSP-J
纪念品题目描述小伟突然获得一种超能力,他知道未来 T 天 N 种纪念品每天的价格。某个纪念品 的价格是指购买一个该纪念品所需的金币数量,以及卖出一个该纪念品换回的金币数量。每天,小伟可以进行以下两种交易无限次:任选一个纪念品,若手上有足够金币,以当日价格购买该纪念品; 卖出持有的任意一个纪念品,以当日价格换回金币。每天卖出纪念品换回的金币可以立即用于购买纪念品,当日购买的纪...原创 2020-07-29 21:24:35 · 1315 阅读 · 0 评论 -
概率
题目描述小明途中经过某个商店,商店推出了一个新的抽奖活动,奖品恰巧是小明最爱的XXX手办。商店公告显示:本商店现有n中抽奖卡,每张抽奖卡上有显示它的中奖概率(pi)以及价格(cost),每种抽奖卡限购一张。小明现在有m元,他想知道自己能够获得这个手办的最大概率是多少?输入对于每组数据第一行输入n,m。(1<=n<=1000,1<=m<=1000)...原创 2020-02-20 18:49:53 · 286 阅读 · 0 评论 -
3.1.2 Score Inflation总分 USACO
题目描述学生在我们USACO的竞赛中的得分越多我们越高兴。我们试着设计我们的竞赛以便人们能尽可能的多得分,这需要你的帮助。我们可以从几个种类中选取竞赛的题目,这里的一个"种类"是指一个竞赛题目的集合,解决集合中的题目需要相同多的时间并且能得到相同的分数。 你的任务是写一个程序来告诉USACO的职员,应该从每一个种类中选取多少题目,使得解决题目的总耗时在竞赛规定的时间里并且总分最大。 输...原创 2020-03-11 17:47:44 · 534 阅读 · 0 评论 -
切开蛋糕【dp+贪心】
题目描述出于某些方面的需求,懒羊羊要把一块N×M的蛋糕切成一个个1×1的小蛋糕。对于一块蛋糕,我们只能从某条横线或者某条竖线(要在方格线上),而且这蛋糕是不均匀的,从不同的线切割下去要花不同的代价。而且,对于一块蛋糕,切割一次以后就被分割成两块,而且不能把这两块蛋糕拼在一起然后一刀切成四块,只能两块分别再进行一次切割。现在,给出从不同的线切割所要花的代价,求把整块蛋糕分割成1×1块小方块所需要耗费的最小代价。输入输入文件第一行包括N和M,表示长N宽M的矩阵。第二行包括N-1个非负整数,分别表示沿原创 2020-07-29 21:20:37 · 921 阅读 · 0 评论 -
3.1.6 Stamps 邮票 USACO
题目描述 已知一个 N 枚邮票的面值集合(如,{1 分,3 分})和一个上限 K —— 表示信封上能够贴 K 张邮票。计算从 1 到 M 的最大连续可贴出的邮资。例如,假设有 1 分和 3 分的邮票;你最多可以贴 5 张邮票。很容易贴出 1 到 5 分的邮资(用 1 分邮票贴就行了),接下来的邮资也不难:6 = 3 + 3 7 = 3 + 3 + 1 8 = 3 + 3 + 1...原创 2020-03-11 18:17:59 · 372 阅读 · 0 评论 -
奶牛家谱 USACO-USACO阶梯-第2章.更大的挑战
题目描述2.3.2 Cow Pedigrees 奶牛家谱(nocows.pas/c/cpp)农民约翰准备购买一群新奶牛。 在这个新的奶牛群中, 每一个母亲奶牛都生两个小奶牛。这些奶牛间的关系可以用二叉树来表示。这些二叉树总共有N个节点(3 <= N < 200)。这些二叉树有如下性质:每一个节点的度是0或2。度是这个节点的孩子的数目。树的高度等于K(1 < K ...原创 2020-03-09 21:13:15 · 229 阅读 · 0 评论 -
Subset Sums集合 USACO-USACO阶梯-第2章.更大的挑战
题目描述2.2.2 Subset Sums集合(subset.pas/c/cpp)对于从1到N (1 <= N <= 39) 的连续整数集合,能划分成两个子集合,且保证每个集合的数字和是相等的。举个例子,如果N=3,对于{1,2,3}能划分成两个子集合,每个子集合的所有数字和是相等的:{3} 和 {1,2}这是唯一一种分法(交换集合位置被认为是同一种划分方案,因...原创 2020-03-09 20:52:51 · 249 阅读 · 0 评论 -
2.2.4 货币系统 USACO-USACO阶梯-第2章.更大的挑战
题目描述母牛们不但创建了他们自己的政府而且选择了建立了自己的货币系统。[In their own rebellious way],,他们对货币的数值感到好奇。传统地,一个货币系统是由1,5,10,20 或 25,50, 和 100的单位面值组成的。母牛想知道有多少种不同的方法来用货币系统中的货币来构造一个确定的数值。举例来说, 使用一个货币系统 {1,2,5,10,...}产生 18单...原创 2020-03-10 21:30:50 · 191 阅读 · 0 评论 -
树形DP存图的两种方式
一、链式前向星先理解一下前向星:1.把每条边的起点按从小到大排序(如果起点一样则终点按从小到大排序)2.记录一下以某个点为起点的边的数量和所有边在数组中的初始位置一般这样定义:len[i]为以i为起点的边的条数head[i]为以i为起点的边在数组中存储的第一个位置链式前向星(数组模拟链表)前向星需要排序链式前向星则不需要链式前向星代码:1.输入时存储...原创 2020-02-16 18:12:16 · 260 阅读 · 0 评论 -
dp练习题1
问题 A: 饥饿的牛题目描述牛在饲料槽前排好了队。饲料槽依次用1到N(1<=N<=2000)编号。每天晚上,一头幸运的牛根据约翰的规则,吃其中一些槽里的饲料。 约翰提供B个区间的清单。一个区间是一对整数start-end,1<=start<=end<=N,表示一些连续的饲料槽,比如1-3,7-8,3-4等等。牛可以任意选择区间,但是牛选择的区间不能有重...原创 2019-12-05 22:09:11 · 749 阅读 · 0 评论 -
树形DP总结
一、树形DP存树how to build a tree!1.用vector,动态数组存图,储存两个节点的父子关系(接下来的代码使用这个)2、链式前向星3、邻接表二、怎样动态规划 how to DP!给定一棵有n个节点的树,我们可以任选一个点为根节点,从而定义出每个节点的深度和每棵子树的根在树上进行DP,一般就以节点从深到浅的顺序作为DP的“阶段”。DP的状态表示中...原创 2020-01-23 11:11:24 · 625 阅读 · 0 评论 -
叶子的染色-基础树形dp
题目描述原题来自:CQOI 2009给一棵有mm个节点的无根树,你可以选择一个度数大于11的节点作为根,然后给一些节点(根、内部节点、叶子均可)着以黑色或白色。你的着色方案应保证根节点到各叶子节点的简单路径上都包含一个有色节点,哪怕是叶子本身。对于每个叶子节点uu,定义c_ucu为从根节点到uu的简单路径上最后一个有色节点的颜色。给出每个c_ucu的值,设计着色方...原创 2020-02-11 22:18:19 · 771 阅读 · 0 评论 -
信奥队过河【dp+前缀和优化】
题目描述叶老师带着他的N(1 <= N <= 2,500)个学生去参加省赛,他们要过一条河,但他们所有的渡河工具,仅仅是一个木筏。由于学生不会划船,在整个渡河过程中,叶老师必须始终在木筏上。在这个基础上,木筏上的学生数目每增加1,叶老师把木筏划到对岸就得花更多的时间。当叶老师一个人坐在木筏上,他把木筏划到对岸需要M(1 <= M <= 1000)分钟。当木筏搭载的学生数目从i-1增加到i时,叶老师得多花M_i(1 <= M_i <= 1000)分钟才能把木筏划过河(原创 2020-07-29 21:21:39 · 386 阅读 · 0 评论