【题目描述】

    现在要把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. Dubbo架构深入篇----RPC实现总结

    最近我拜读了mindwind的一片博客文章深入浅出 RPC - 深入篇,希望通过Dubbo深入学习RPC架构设计,在此结合RPC架构的原理,解析Dubbo是如何实现RPC架构的. RPC架构模型 RP ...

  2. 【记录】Git pull(拉取),push(上传)命令整理(详细)

    前言:博主最近在学习git命令,因为git是一个非常好用的分布式版本管理工具,功能比svn强大,与SVN不同点是Git去中心化,每一个分支都是一个中心,并且支持本地仓库存储,像如今很多大公司都用git ...

  3. Java版基于SpringBoot+Vue.js实现自动创表自动定时采集(各个微信公众号商城产品进行采集)-爬虫篇

  4. KNN算法项目实战——改进约会网站的配对效果

    KNN项目实战——改进约会网站的配对效果 1.项目背景: 海伦女士一直使用在线约会网站寻找适合自己的约会对象.尽管约会网站会推荐不同的人选,但她并不是喜欢每一个人.经过一番总结,她发现自己交往过的人可 ...

  5. kali Linux 入门(二)

    九.软件安装 1.apt install --软件名称-- -y 2.apt install packge_name----库安装 3.apt install kali-linux-all -y--- ...

  6. No qualifying bean of type xxx' available 的一种解决方法

    获取bean Class beanClass = Class.forName(event.className); FilterEvent filterEvent = (FilterEvent)Bean ...

  7. 【vue】vue不足 待补强

    83719279 9:56:03尤其是路由 声明周期 父子通信 组件通信 以及钩子函数83719279 9:56:17这些我都不敢用,只能用最原始的方法83719279 9:56:32还有es6 js ...

  8. bzoj3991 [SDOI2015]寻宝游戏 树链的并

    题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=3991 题解 貌似这个东西叫做树链的并,以前貌似写过一个类似的用来动态维护虚树. 大概就是最终的 ...

  9. 载]mysqlhotcopy 热备工具体验与总结

    载]mysqlhotcopy 热备工具体验与总结 今天有空尝试了一下MYSQLHOTCOPY这个快速热备MYISAM引擎的工具.(本文是针对单个服务器的情况,以后将会加入多服务器相关操作)他和MYSQ ...

  10. sed 搜索并替换

    find . -type f -exec sed -i "s/std=c++11/std=c++14/g" {} \; 搜索当前目录下的文件,把std=c++11替换成std=c+ ...