书的复制书的复制书的复制

Description

现在要把m本有顺序的书分给k个人复制(抄写),每个人的抄写速度都一样,一本书不允许分给两个或两个以上的人抄写,分给每个人的书,必须是连续的,比如不能把第一、第三、第四本书给同一个人抄写。

现在请你设计一种方案,使得复制时间最短。复制时间为抄写最多的人用去的时间。

Input

第一行两个整数,m,k(k<=m<=500)

第二行为m个整数,第i个数表示第i本书的页数。

Output

最短时间

Sample Input

9 3

1 2 3 4 5 6 7 8 9

Sample Output

17

题目大意:

用n本书,每本书都有自己的页数(抄一页要一个单位的时间),每个人抄的必须是连续的,而且不能把书给两个人抄,最快多久抄完?

解题方法:

本体类似于加法最大(传送门),它要的是时间花的最少的,我们要先求出两个人要花的最少时间,再依次往后求

动态转移方程:

f[i][k]=min(f[i][k],max(f[j][k−1],a[i]−a[j]))f[i][k]=min(f[i][k],max(f[j][k-1],a[i]-a[j]))f[i][k]=min(f[i][k],max(f[j][k−1],a[i]−a[j]))

标注:

i为求前i本书,k为k个人,j为分割线

#include<cstdio>
#include<iostream>
using namespace std;
int n,m,x,a[502],f[502][502];
int main()
{memset(f,127/3,sizeof(f));scanf("%d%d",&n,&m);for (int i=1;i<=n;i++){scanf("%d",&x);a[i]=a[i-1]+x;//前缀和,方便后面计算f[i][1]=a[i];//初始化}for (int k=2;k<=m;k++)//枚举人for (int i=k;i<=n-m+k;i++)//枚举前i本书for (int j=1;j<i;j++)//枚举分割线f[i][k]=min(f[i][k],max(f[j][k-1],a[i]-a[j]));//时间是分割线两边最大的,左边交给k-1个人做,右边交给第k个人做printf("%d",f[n][m]);
}

【动态规划】书的复制 (ssl 1203)相关推荐

  1. 信息学奥赛一本通 1278:【例9.22】复制书稿(book) | 洛谷 P1281 书的复制

    [题目链接] ybt 1278:[例9.22]复制书稿(book) 洛谷 P1281 书的复制 [题目考点] 1. 动态规划:线性动规 [解题思路] 该题可以抽象为:将由m个数字构成的序列分成k个子段 ...

  2. BMH online judge刷题记——书的复制(二分)

    书的复制 题目描述 现在要把m本有顺序的书分给k给人复制(抄写),每一个人的抄写速度都一样,一本书不允许给两个(或以上)的人抄写,分给每一个人的书,必须是连续的,比如不能把第一.第三.第四本书给同一个 ...

  3. 小红书app复制链接转换为可直接访问链接

    当你在小红书复制某篇笔记链接,黏贴出来是这个样子的 这种链接只有打开小红书app才能够访问,那么怎么把这种链接转换为可直接访问的格式呢? 执行下方代码即可 import requests import ...

  4. 【动态规划-01背包】 HDU 1203 I NEED A OFFER!

    1203 ( I NEED A OFFER! )  Problem Description Speakless很早就想出国,现在他已经考完了所有需要的考试,准备了所有要准备的材料,于是,便需要去申请学 ...

  5. 洛谷 1281 书的复制

    [题解] 二分答案,贪心check.  然后根据二分出来的答案去计算每个人抄写的部分,注意要让前面的人少抄写,所以从后往前贪心即可. 1 #include<cstdio> 2 #inclu ...

  6. 【动态规划】 数字游戏 (ssl 1653)

    数字游戏 题目大意: 有n个数,分别为a[1] (序号为1),a[2] (序号为2),a[3]-a[n],让你选m个数,每选一个数,就要减去已选个数(不算当前数)*b[i] (i为当前值的序号),所选 ...

  7. 【动态规划】农田个数 (ssl 1633)

    农田个数农田个数农田个数 Description 你的老家在河北农村.过年时,你回老家去拜年.你家有一片NM农田,将其看成一个NM的方格矩阵,有些方格是一片水域.你的农村伯伯听说你是学计算机的,给 ...

  8. 【动态规划】分组背包 (ssl 2291)

    分组背包分组背包分组背包 Description 有N件物品和一个容量为V的背包.第i件物品的费用是c[i],价值是w[i].这些物品被划分为若干组,每组中的物品互相冲突,最多选一件.求解将哪些物品装 ...

  9. 【动态规划】加法最大 (ssl 1595)/乘积最大 (ssl 1007)

    加法最大加法最大加法最大 Description 设有一个长度为n的数字字符串,分成k+1个部份,使其k+1部份相加的和为最大.例如:数字串'340670',k=1,其加法有 3+40670=4067 ...

最新文章

  1. 安卓中事件绑定的写法
  2. Java中的executeQuery,java连接数据库executeUpdate() 和executeQuery()
  3. 浅析Microsoft .net PetShop程序中的购物车和订单处理模块(Profile技术,异步MSMQ消息)转...
  4. ITK:Delaunay贴合边缘翻转
  5. Windows使用opencv训练模型过程记录(提供样本)
  6. 适用于Java开发人员的Elasticsearch:Elasticsearch生态系统
  7. raspberry pi_修改磁盘映像以创建基于Raspberry Pi的homelab
  8. 【Objective-C】探索Category底层的实质
  9. 进阶06 List集合
  10. 计算机网络试题及答案(史上最全)
  11. sgu 309 Real Fun
  12. 论计算机基础的重要性
  13. MySQL字符集是什么
  14. 远程操作安卓手机——所见即所控
  15. thymeleaf 语法大全
  16. 【报告分享】2020快手母婴生态报告-快手大数据研究院(附下载)
  17. 前端安全(http)
  18. 关于 redux-thunk 的作用,认识,理解
  19. 机器学习 --- k-means
  20. 17个最有用的PHP脚本(和5个出色的免费脚本)

热门文章

  1. mysql 8 配置参数优化_mysql8 参考手册--配置非持久性优化器统计参数
  2. ricky java photos_【Melee】Ricky blog updates and new photos
  3. setnx是原子操作吗_谈谈Volatile关键字?为什么不能保证原子性?用什么可以替代?为什么?...
  4. 如何把python文件发给别人没_如何把自己写的python程序给别人用
  5. 算法设计与分析——贪心算法——单个出水口打水问题
  6. python编程中的小问题汇总
  7. C++ 学习之旅(9)——类Class与结构Struct
  8. [SpringSecurity]web权限方案_自动登陆_原理分析和具体实现
  9. 对象的单数组表示(用单数组实现链表-不一样的链表实现)
  10. 算法-排序-归并排序