![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
-------------动态规划------------
田园园野
我坚持,我坚信
展开
-
石子合并 相邻两堆合并
石子合并(二)描述有N堆石子排成一排,每堆石子有一定的数量。现要将N堆石子并成为一堆。合并的过程只能每次将相邻的两堆石子堆成一堆,每次合并花费的代价为这两堆石子的和,经过N-1次合并后成为一堆。求出总的代价最小值。输入 有多组测试数据,输入到文件结束。 每组测试数据第一行有一个整数n,表示有n堆石子。 接下来的一行有n(0< n <200)个数,分别表示这n堆石子的数目,用空格隔开输出 输出原创 2017-04-26 16:13:02 · 1819 阅读 · 0 评论 -
合唱队形 动态规划
Description N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1, 2, …, K,他们的身高分别为T1, T2, …, TK,则他们的身高满足T1 < T2 < … < Ti , Ti > Ti+1 > … > TK (1 <= i <= K)。 你的任务是,已知所有N位同学的身高,计算原创 2017-04-22 15:54:17 · 763 阅读 · 0 评论 -
Mondriaan's Dream 瓷砖覆盖地板 编程之美
Description Squares and rectangles fascinated the famous Dutch painter Piet Mondriaan. One night, after producing the drawings in his ‘toilet series’ (where he had to use his toilet paper to draw on,原创 2017-04-27 19:27:07 · 657 阅读 · 0 评论 -
统计单词个数
统计单词个数Description给出一个长度不超过200的由小写英文字母组成的字母串(约定;该字串以每行20个字母的方式输入,且保证每行一定为20个)。要求将此字母串分成k份(1<k≤40),且每份中包含的单词个数加起来总数最大(每份中包含的单词可以部分重叠。当选用一个单词之后,其第一个字母不能再用。例如字符串this中可包含this和is,选用this之后就不能包含th)。 单原创 2017-04-29 23:18:54 · 1384 阅读 · 0 评论 -
防御导弹 最长递增子序列
题目描述 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截 系统有一个缺陷:虽然它的第一发炮弹能够达到任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试 用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。输入 最多20个整数,分别表示导弹依次飞来的高度(雷达给出高度数据是不大于30000的正整数)输出 整数M。表示:原创 2017-03-01 21:16:58 · 266 阅读 · 0 评论 -
算法提高 金属采集
问题描述 人类在火星上发现了一种新的金属!这些金属分布在一些奇怪的地方,不妨叫它节点好了。一些节点之间有道路相连,所有的节点和道路形成了一棵树。一共有 n 个节点,这些节点被编号为 1~n 。人类将 k 个机器人送上了火星,目的是采集这些金属。这些机器人都被送到了一个指定的着落点, S 号节点。每个机器人在着落之后,必须沿着道路行走。当机器人到达一个节点时,它会采集这个节点蕴藏的所有金属矿。当机器原创 2017-04-02 23:17:38 · 983 阅读 · 0 评论 -
石子合并(三) 环形合并
题目描述在一个园形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,合并的花费为这相邻两堆之和试设计出1个算法,计算出将N堆石子合并成1堆的最小花费.输入输出格式输入格式: 数据的第1行试正整数N,1≤N≤100,表示有N堆石子.第2行有N个数,分别表示每堆石子的个数.输出格式: 输出最小得分题解: 动态规划 dp[i][t]=min(dp[i][原创 2017-04-26 16:41:45 · 4767 阅读 · 0 评论 -
石子合并 任意两堆合并
石子合并(一)描述 有N堆石子排成一排,每堆石子有一定的数量。现要将N堆石子并成为一堆。合并的过程中任意两堆石子堆成一堆,每次合并花费的代价为这两堆石子的和,经过N-1次合并后成为一堆。求出总的代价最小值。输入 测试数据第一行有一个整数n,表示有n堆石子。 接下来的一行有n(0< n <200)个数,分别表示这n堆石子的数目,用空格隔开输出 输出总代价的最小值,占单独的一行 样例输入 3原创 2017-04-26 15:58:11 · 1865 阅读 · 0 评论 -
核电站问题 动态规划
核电站问题一个核电站有N个放核物质的坑,坑排列在一条直线上。如果连续M个坑中放入核物质,则会发生爆炸,于是,在某些坑中可能不放核物质。任务:对于给定的N和M,求不发生爆炸的放置核物质的方案总数。输入描述 Input Description输入文件只一行,两个正整数N,M( 2<=N<50,2≤M≤5)输出描述 Output Description输出文件只有一个正整数S,表示方案总数。样例输入 Sa原创 2017-04-23 21:30:20 · 3168 阅读 · 2 评论 -
挖地雷问题 单向 动态规划
挖地雷Problem Description在一个地图上有n个地窖(n<=200),每个地窖中埋有一定数量的地雷。同时,给出地窖之间的连接路径,并规定路径都是单向的,也不存在可以从一个地窖出发经过若干地窖后又回到原来地窖的路径。某人可以从任一处开始挖地雷,然后沿着指出的连接往下挖(仅能选择一条路径),当无连接时挖地雷工作结束。设计一个挖地雷的方案,使他能挖到最多的地雷。(用动态规划求解)Input输原创 2017-04-23 10:01:44 · 1645 阅读 · 0 评论 -
山区建小学 动态规划
描述政府在某山区修建了一条道路,恰好穿越总共m个村庄的每个村庄一次,没有回路或交叉,任意两个村庄只能通过这条路来往。已知任意两个相邻的村庄之间的距离为di(为正整数),其中,0 < i < m。为了提高山区的文化素质,政府又决定从m个村中选择n个村建小学(设 0 < n < = m < 500 )。请根据给定的m、n以及所有相邻村庄的距离,选择在哪些村庄建小学,才使得所有村到最近小学的距离总和最小,原创 2017-04-22 21:12:25 · 1876 阅读 · 0 评论 -
最短路 floyd算法
动态规划#include<stdio.h>#include<string.h>#define max 99999999#define min(a,b) a<b?a:bint main(){ int n,m,i,j,a,b,v,k; scanf("%d%d",&n,&m); int dp[n][n]; for(i=0;i<n;i++){ for(j原创 2017-04-03 21:49:31 · 495 阅读 · 0 评论 -
Corn Fields 状压DP
Corn Fields Memory Limit: 65536KTotal Submissions: 10891 Accepted: 5705DescriptionFarmer John has purchased a lush new rectangular原创 2017-04-28 13:43:38 · 1430 阅读 · 1 评论 -
炮兵阵地 状压DP
炮兵阵地Time Limit: 2000MS Memory Limit: 65536KTotal Submissions: 27477 Accepted: 10632Description司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队。一个N*M的地图由N行M列组成,地图的每一格可能是山地(用"H" 表示),也可原创 2017-04-29 10:52:29 · 370 阅读 · 0 评论 -
算法训练 结点选择
算法训练 结点选择 时间限制:1.0s 内存限制:256.0MB 提交此题 锦囊1 锦囊2 问题描述 有一棵 n 个节点的树,树上每个节点都有一个正整数权值。如果一个点被选择了,那么在树上和它相邻的点都不能被选择。求选出的点的权值和最大是多少? 输入格式 第一行包含一个整数 n 。 接下来的一行包含 n 个正整数,第 i 个正整数代表点原创 2017-04-02 13:47:55 · 1080 阅读 · 0 评论 -
动态规划
1、剪绳子给你一根长度为n的绳子,请把绳子剪成m段(m、n都是整数,n>1,m>1), 每段绳子的长度记为 k[0], k[1], k[2], …, k[m]。 请问 k[0] * k[1] * k[2] * … * k[m] 可能的最大乘积是多少? 例如,当绳子的长度为8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。解法一:动态规划func max(a int...原创 2018-06-25 13:20:09 · 201 阅读 · 0 评论