整理图书

时间限制:3000 ms  |  内存限制:65535 KB
难度:5
 
描述
小明是图书鹳狸猿,他有很多很多的书堆在了一起摆在了架子上,每摞书是横着放的,而且每摞书是订好的
是一个整体,不可分开,(可以想象架子是一条直线),但是这些书高度却参差不齐,小明有强迫症,看不得不整齐
所以他想让这些书的高度形成一个非降序列他才舒心,可是这些书是有序的,所以他只能把其中的一摞书和他相邻的书装订在一起
形成一摞新的书,那么他最少的装订次数是多少呢
 
输入
多组测试数据,处理到文件结束
每组数据开始有一个n(1<=n<=1000)表示有n摞书
接下来一行是这n摞书的高度a[i],(1<=a<=10^5)(虽然这个高度有点扯淡)
输出
首先输出Case num : 表示第几组数据
接下来对于每组数据输出最少的装订次数
样例输入
5
8 2 7 3 1
1
100
样例输出
Case 1: 3
Case 2: 0
提示
第一组样例:将后4本书装订在一起,共装订3次,组成8 13
第二组样例:只有一本书,无需装订
解题思路:我们定义dp[i]表示将前i摞图书整理成非降序列时的最少步数。定义h[i]表示前i摞书的最高的书高。同时sum[i]来记录前i摞书的总高度。dp[i]=dp[j]+(i-j-1)。如果前j摞书中最高书高小于等于sum[i]-sum[j]。则判断是否将j--->i这么多摞书合并在一块儿是否比dp[i]更小,如果是,则更新dp[i],h[i]。为什么从i-1开始只要能找到更新dp[i]的就算是最优结果了?因为dp[j]已经是最优结果了,那么我在最优解的基础上找到最小的增量,那么dp[i]也肯定是最优解了。
#include<bits/stdc++.h>
using namespace std;
const int INF = 0x3f3f3f3f;
const int maxn = 5050;
int a[maxn], sum[maxn], dp[maxn], h[maxn];
int main() {
int n, cnt = 0;
while ( scanf ( "%d", &n ) != EOF ) {
memset ( sum, 0, sizeof ( sum ) );
for ( int i = 1; i <= n; i++ ) {
scanf ( "%d", &a[i] );
h[i] = max ( h[i - 1], a[i] );
sum[i] = sum[i - 1] + a[i];
}
memset ( dp, INF, sizeof ( dp ) );
dp[0] = 0; //当前0或1摞书非降序时需要最少装订次数为0
dp[1] = 0;
for ( int i = 2; i <= n; i++ ) {
for ( int j = i - 1; j >= 0; j-- ) {
if ( h[j] <= sum[i] - sum[j] ) {//当前j个中最大高度大于等于从j到i的总书高,进行状态转移
if ( dp[i] > dp[j] + i - j - 1 ) {
dp[i] = dp[j] + i - j - 1; //更新dp
h[i] = sum[i] - sum[j]; //更新前i摞书中最高的书高高度
break;
}
}
}
}
printf ("*Case %d: %d\n",++cnt, dp[n] );
}
return 0;
}
/*
6
5 5 2 3 5 5 */

  

nyoj 1216——整理图书 CF 229D—— Towers——————【dp+贪心】的更多相关文章

  1. CF 553A 组合DP

    http://codeforces.com/problemset/problem/553/A A. Kyoya and Colored Balls time limit per test 2 seco ...

  2. UVA.10066 The Twin Towers (DP LCS)

    UVA.10066 The Twin Towers (DP LCS) 题意分析 有2座塔,分别由不同长度的石块组成.现在要求移走一些石块,使得这2座塔的高度相同,求高度最大是多少. 问题的实质可以转化 ...

  3. BZOJ 2021 [Usaco2010 Jan]Cheese Towers:dp + 贪心

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2021 题意: John要建一个奶酪塔,高度最大为m. 他有n种奶酪.第i种高度为h[i]( ...

  4. 【bzoj4027】[HEOI2015]兔子与樱花 树形dp+贪心

    题目描述 很久很久之前,森林里住着一群兔子.有一天,兔子们突然决定要去看樱花.兔子们所在森林里的樱花树很特殊.樱花树由n个树枝分叉点组成,编号从0到n-1,这n个分叉点由n-1个树枝连接,我们可以把它 ...

  5. 洛谷P2507 [SCOI2008]配对 题解(dp+贪心)

    洛谷P2507 [SCOI2008]配对 题解(dp+贪心) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1299251 链接题目地址:洛谷P2507 [S ...

  6. CF 445A 简单DP

    今天早上找一道题的bug,还是找不出来,下午刷了几道水题,晚上准备回家的事, 然后本来想打CF的,一看,数学场,不打了. 这道题的题意: 给出一个序列,每次你可以从这个序列里面选择一个数ak,删除,然 ...

  7. HDU 4632 CF 245H 区间DP(回文)

    先说HDU 4632这道题,因为比较简单,题意就是给你一个字符串,然后给你一个区间,叫你输出区间内所有的回文子序列,注意是回文子序列,不是回文字串. 用dp[i][j]表示区间[i,j]内的回文子序列 ...

  8. CF 219D 树形DP

    CF 219D [题目链接]CF 219D [题目类型]树形DP &题意: 给一个n节点的有向无环图,要找一个这样的点:该点到其它n-1要逆转的道路最少,(边<u,v>,如果v要到 ...

  9. nyoj 1091 还是01背包(超大数dp)

    nyoj 1091 还是01背包 描述 有n个重量和价值分别为 wi 和 vi 的物品,从这些物品中挑选总重量不超过W的物品,求所有挑选方案中价值总和的最大值 1 <= n <=40 1 ...

随机推荐

  1. Lucene 全文检索 Lucene的使用

    Lucene  全文检索  Lucene的使用 一.简介: 参考百度百科: http://baike.baidu.com/link?url=eBcEVuUL3TbUivRvtgRnMr1s44nTE7 ...

  2. Ground Truth

    ground truth就是参考标准,一般用来做误差量化.比方说要根据历史数据预测某一时间的温度,ground truth就是那个时间的真实温度.error就是(predicted temperatu ...

  3. day06.2-软链接与硬链接

    1. 建立软链接:ln   -s   源文件   链接文件 特点:a). 相当于Windons系统中的快捷方式:        b). 删除链接文件不影响源文件内容,而删除源文件后链接文件随即失效: ...

  4. 167. Two Sum II - Input array is sorted两数之和

    1. 原始题目 给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数. 函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2. 说明 ...

  5. windwos下安装nginx(转)

    1.windows下安装Nginx1.1 从nginx官网下载相应的安装包:http://nginx.org/  1.2 建议下载  下载稳定版 1.3 解压到相应的目录,比如我是e盘 然后修改目录名 ...

  6. ASP 注释

    ASP.NET中使用HTML标准注释<!-- -->回导致程序崩溃,必须使用ASP标准注释<%-- --%>

  7. P4799 [CEOI2015 Day2]世界冰球锦标赛

    \(\color{#0066ff}{题目描述}\) 今年的世界冰球锦标赛在捷克举行.Bobek 已经抵达布拉格,他不是任何团队的粉丝,也没有时间观念.他只是单纯的想去看几场比赛.如果他有足够的钱,他会 ...

  8. win10全半角切换

    shift+sapce shift+sapce:全半角切换快捷键,编程的时候发现英文是这种状态,就需要用快捷键切换成半角. (查过老是忘记,在这里写一下记住它)

  9. 毕业设计 python opencv实现车牌识别 界面

    主要代码参考https://blog.csdn.net/wzh191920/article/details/79589506 GitHub:https://github.com/yinghualuow ...

  10. hdu2553 N皇后问题(dfs+回溯)

    N皇后问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...