博客
关于我
【SSL】1203书的复制(normal)
阅读量:331 次
发布时间:2019-03-04

本文共 862 字,大约阅读时间需要 2 分钟。

【SSL】1203书的复制(normal)

Time Limit:1000MS
Memory Limit:65536K

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

思路

设f[i][j]表示前i本书交由j个人抄写需要的最短时间,则状态转移方程为:

f[i][j]=min(f[i][j],max(f[i-1][l],sum[j]-sum[l]));
1<=i<=n,1<=j<=k,1<=l<j

代码

#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;int n,k,a[1010],f[1010][1010],sum[1010];void input(){ int i; scanf("%d%d",&n,&k); for(i=1;i<=n;i++) { scanf("%d",&a[i]); sum[i]=sum[i-1]+a[i];//预处理前缀和 f[1][i]=sum[i]; } return;}void DP(){ int i,j,l; for(i=2;i<=k;i++) { for(j=1;j<=n;j++) { f[i][j]=100000000; for(l=1;l

转载地址:http://zvze.baihongyu.com/

你可能感兴趣的文章
利用Bootstrap Paginator插件和KnockoutJS完成分页功能
查看>>
.NET微信网页开发之使用微信JS-SDK调用微信扫一扫功能
查看>>
.NET微信网页开发之使用微信JS-SDK获取当前地理位置
查看>>
Android Studio在android Emulator中运行的项目黑屏
查看>>
Python写代码的时候为什么要注释?Sun因此被Oracle收购
查看>>
JAVA高并发集合详解
查看>>
解决Spirng注入时名称下的红色波浪线
查看>>
操作系统知识概述
查看>>
读懂操作系统(x64)之堆栈帧(过程调用)
查看>>
仓储模式到底是不是反模式?
查看>>
VS2015安装EF Power Tools
查看>>
Web APi之捕获请求原始内容的实现方法以及接受POST请求多个参数多种解决方案(十四)
查看>>
ASP.NET MVC之JsonResult(六)
查看>>
SQL Server之深入理解STUFF
查看>>
EntityFramework 6.x和EntityFramework Core关系映射中导航属性必须是public?
查看>>
使用mybatis-generator生成底层
查看>>
Android APK 重签名
查看>>
Mybatis【3】-- Mybatis使用工具类读取配置文件以及从属性读取DB信息
查看>>
Mybatis【5】-- Mybatis多种增删改查那些你会了么?
查看>>
Mybatis【7】-- Mybatis如何知道增删改是否成功执行?
查看>>