【题目描述】

    现在要把m本有顺序的书分给k个人复制(抄写),每一个人的抄写速度都一样,一本书不允许给两个(或以上)的人抄写,分给每一个人的书,必须是连续的,比如不能把第一、第三和第四本书给同一个人抄写。现在请你设计一种方案,使得复制时间最短。复制时间为抄写页数最多的人用去的时间。

【题目链接】

    http://ybt.ssoier.cn:8088/problem_show.php?pid=1278

【算法】

    决策:前i个人抄j本书所用最少时间。设位dp【i】【j】=min(max(dp【i】【k】,b【j】-b【k】)),b【】为前缀和数组。得到最优解后,用贪心策略,从后往前尽可能取更多的书给靠后的人抄。

【代码】

 #include <bits/stdc++.h>
using namespace std;
int m,k,i,j,n;
int a[],b[],dp[][];
int main()
{
scanf("%d%d",&m,&k);
memset(dp,0x3f,sizeof(dp));
for(i=;i<=m;i++) scanf("%d",&a[i]),b[i]=a[i]+b[i-],dp[][i]=b[i];
for(i=;i<=k;i++)
for(j=i;j<=m;j++)
for(n=i-;n<j;n++) {
int cur=max(dp[i-][n],b[j]-b[n]);
if(cur<dp[i][j]) dp[i][j]=cur;
}
stack<int> rec;
int left=dp[k][m],num=;
for(i=m;i>=;i--) {
if(left>=a[i]) left-=a[i],num++;
else rec.push(num),left=dp[k][m]-a[i],num=;
}
if(num) rec.push(num);
for(i=,j=;i<=k;i++) {
printf("%d %d\n",j,j+rec.top()-);
j+=rec.top();
rec.pop();
}
return ;
}

复制书稿 (dp+贪心)的更多相关文章

  1. 复制书稿(book) (二分,贪心+dp)

    复制书稿(book) 时间限制: 1 Sec  内存限制: 128 MB提交: 3  解决: 1[提交][状态][讨论版][命题人:quanxing] 题目描述 现在要把m本有顺序的书分给k个人复制( ...

  2. codevs 4310 复制书稿

    4310 复制书稿  时间限制: 1 s  空间限制: 4000 KB  题目等级 : 黄金 Gold 题解  查看运行结果     题目描述 Description 现在要把m本有顺序的书分给k个人 ...

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

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

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

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

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

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

  6. 【BZOJ-1046】上升序列 DP + 贪心

    1046: [HAOI2007]上升序列 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 3723  Solved: 1271[Submit][Stat ...

  7. Codeforces 675E Trains and Statistic(DP + 贪心 + 线段树)

    题目大概说有n(<=10W)个车站,每个车站i卖到车站i+1...a[i]的票,p[i][j]表示从车站i到车站j所需买的最少车票数,求所有的p[i][j](i<j)的和. 好难,不会写. ...

  8. 【HDU 2546】饭卡(DP+贪心)

    贪心:最贵的留到最后买.状态转移方程:dp[j]=dp[j+a[i]]|dp[j],dp[i]表示余下i元. 原来就不足5元,那就不能买啦. #include<cstdio> #inclu ...

  9. POJ 1065 Wooden Sticks / hdu 1257 最少拦截系统 DP 贪心

    参考链接:http://blog.csdn.net/xiaohuan1991/article/details/6956629 (HDU 1257 解题思路一样就不继续讲解) POJ 1065题意:给你 ...

随机推荐

  1. Apache Mesos1.0.1 编译安装部署教程(ubuntu)

    参考资料 官方文档:http://mesos.apache.org/documentation 中文翻译:http://mesos.mydoc.io/ GitHub:https://github.co ...

  2. 2019ICPC网赛南京站B题 super_log(欧拉降幂

    https://nanti.jisuanke.com/t/41299 题意:让算a^(a^(a^(...))),一共b个a, (mod p)的结果. 思路:这是个幂塔函数,用欧拉降幂公式递归求解. # ...

  3. JuniorCTF - Web - blind

    题目链接 https://ctftime.org/task/7450 参考链接 https://github.com/Dvd848/CTFs/blob/master/2018_35C3_Junior/ ...

  4. bzoj2085 [Poi2010]Hamsters 矩阵快速幂+字符串hash

    题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=2085 题解 考虑暴力 DP 的做法.令 \(dp[i][j]\) 表示以 \(j\) 为开头的 ...

  5. Nginx-配置负载均衡实例

    配置负载均衡实例 实现效果: 配置负载均衡 实验代码 1) 首先准 备两个同时启动的 Tomcat 2) 在 nginx.conf 中进行配置 随着互联网信息的爆炸性增长,负载均衡(load bala ...

  6. 01 安装IDEA

    https://www.jetbrains.com 1 . 2

  7. Nginx的启动、停止与重启---linux

    一.选定安装文件目录 可以选择任何目录 cd /usr/local/src 二.安装PCRE库 ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcr ...

  8. (1)消灭初级程序员常用的多层if-else嵌套--------------【表驱动法】

    表驱动法 1.相信很多刚从事工作的程序员或一些初级程序员在写代码的时候会出现对一些逻辑判断写成多层if-else嵌套的经历,这种方式在一些简单的层次中运用起来确实可行,但对于一些大型项目逻辑判断比较多 ...

  9. sql select语句详解

    先group by 后  order by SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ]    * | expression [ AS ...

  10. 从React渲染流程分析Diff算法

    1.什么是虚拟DOM 在React中,render执行的结果得到的并不是真正的DOM节点,结果仅仅是轻量级的JavaScript对象,我们称之为virtual DOM. 简单的说,其实所谓的virtu ...