最大值最小化(网易有道2013年校园招聘面试一面试题)

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情
题目描述:
在印刷术发明之前,复制一本书是一个很困难的工作,工作量很大,而且需要大家的积极配合来抄写一本书,团队合作能力很重要。
当时都是通过招募抄写员来进行书本的录入和复制工作的, 假设现在要抄写m本书,编号为1,2,3...m, 每本书有1<=x<=100000页, 把这些书分配给k个抄写员,要求分配给某个抄写员的那些书的编号必须是连续的。每个抄写员的速度是相同的,你的任务就是找到一个最佳的分配方案,使得所有书被抄完所用的时间最少。


输入:
输入可能包含多个测试样例。
第一行仅包含正整数 n,表示测试案例的个数。
对于每个测试案例,每个案例由两行组成,在第一行中,有两个整数m和 k, 1<=k<=m<=500。 在第二行中,有m个整数用空格分隔。 所有这些值都为正且小于100000。


输出:
对应每个测试案例,
输出一行数字,代表最佳的分配方案全部抄写完毕所需要的时间。


 


样例输入:
2
9 3
100 200 300 400 500 600 700 800 900
5 4
100 100 100 100 100
样例输出:
1700

200

这道题目跟另一道常见的题目类似

问题描述:

把一个包含n个正整数的序列划分成m个连续的子序列。设第i个序列的各数之和为S(i),求所有S(i)的最大值最小是多少?

例如序列1 2 3 2 5 4划分为3个子序列的最优方案为 1 2 3 | 2 5 | 4,其中S(1),S(2),S(3)分别为6,7,4,那么最大值为7;

如果划分为 1 2 | 3 2 | 5 4,则最大值为9,不是最小。

可以采用 http://blog.csdn.net/nanjunxiao/article/details/8145971所描述的方法,但是在面试那种紧张的环境下还是走一些正常路,贪心加二分的思想有一定的技巧性。所以我想直接通过动态规划去解,这样更走寻常路。也解释了下面评论给出的疑问,为什么不用贪心加二分

可以看出来这是一道二维动态规划的问题

#include <iostream>
#include <fstream>
#include <cstdlib>
#include <algorithm>
#include <vector>
#include <map>
#include <deque>

using namespace std;
 //m书的本书,k抄写员的个数
int dp[505][505];
int data[505]={100, 200, 300, 400, 500, 600, 700, 800, 900}; //每本书的页数

#define max(a, b) (a > b ? a : b)

#define INF 100000000

int GetMax(int m , int k){
    int i,j,l,jj,sum;
    dp[0][1] = 0;
    for (j = 1; j <= m; j ++)
        dp[j][1] = dp[j - 1][1] + data[j];
    for (l = 2; l <= k; l ++){
        for (j = l; j <= m - (k - l); j ++){
            sum = 0;
            dp[j][l] = INF;
            for (jj = j; jj >= l; jj --){
                sum += data[jj];
                if (max(dp[jj - 1][l - 1], sum) < dp[j][l])
                    dp[j][l] = max(dp[jj - 1][l - 1], sum);
            }
        }
    }    
    return dp[m][k];
}

int main(void)
{
    cout<<GetMax(9,3)<<endl;
    system("pause");
    return EXIT_SUCCESS;
}





网易有道面试总结 网易有道面试总结 第一次实习生面试给了网易有道,总结一下面试的经验,方便日后回顾。有道一面和二面主要都是就算法和项目展开,并没有对基础知识进行过多的提问,可以看出在面试官也没有准备的情况下,手写算法一定是面试着重考察的,而算法所占的比重取决于面试官准备的程度。 连续最大子数组 连续最大子数组,并求得起始位置 连续子数组和最小 连续子数组求绝对值和最小 最大存水量 收集雨水 直方图中找最 阅读详情

相关推荐

单细胞转录组数据质控实战:如何用Seurat精准过滤低质量细胞(附完整代码)

本文详细介绍了使用Seurat进行单细胞转录组数据质控的实战方法,包括基因检出数、分子计数和线粒体基因比例等关键指标的解读与可视化技巧。通过动态阈值策略和高级质控技巧(如双细胞检测和红细胞过滤),帮助研究者精准过滤低质量细胞,提升数据分析可靠性。附完整代码示例,适合生物信息学研究人员参考实践。

ii567的博客 787

UVA ~ 714 ~ Copying Books(二分+最大值最小化

题意:给你K本书分给M个人抄,这M个人抄书的速度相同,每个人抄的书的编号必须连续,问怎么划分可以最快的抄完这M本书? 思路:典型的最大值最小化的问题,

张松超的博客 496

实用指南:制作通用的INCA和CANape兼容A2L文件

A2L(ASAM MCD-2 Measurement and Calibration Data)文件是描述ECU(电子控制单元)测量和校准数据的标准文件格式。在标定工作中,A2L文件扮演着极为重要的角色,它定义了测量通道、校准参数等关键信息,为工程师提供了统一的描述方式。INCA和CANape是两种常见的汽车电子系统标定工具,分别由ETAS和Vector公司开发。它们在汽车电子系统的开发和调试过程中发挥着重要作用,提供了丰富的标定功能和用户友好的界面。

一直在水些技术小文 2871

最大值最小化(DP)

题目来源:网易有道2013校园招聘面试一面试题题目描述: 在印刷术发明之前,复制一本书是一个很困难的工作,工作量很大,而且需要大家的积极配合来抄写一本书,团队合作能力很重要。当时都是通过招募抄写员来进行书本的录入和复制工作的, 假设现在要抄写m本书,编号为1,2,3...m, 每本书有1&lt;=x&lt;=100000页, 把这些书分配给k个抄写员,要求分配给某个抄写员的那些书的编号必须是连...

weixin_34186950的博客 290

【九度1502】最大值最小化

题目1502:最大值最小化 时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:566 解决:214 题目描述: 在印刷术发明之前,复制一本书是一个很困难的工作,工作量很大,而且需要大家的积极配合来抄写一本书,团队合作能力很重要。 当时都是通过招募抄写员来进行书本的录入和复制工作的, 假设现在要抄写m本书,编号为1,2,3...m

better_space的博客 524

二分法-网易有道2013校园招聘面试一面试题

九度:http://ac.jobdu.com/problem.php?pid=1502 题目描述: 在印刷术发明之前,复制一本书是一个很困难的工作,工作量很大,而且需要大家的积极配合来抄写一本书,团队合作能力很重要。 当时都是通过招募抄写员来进行书本的录入和复制工作的, 假设现在要抄写m本书,编号为1,2,3...m, 每本书有1&lt;=x&lt;=100000页, 把这些书分...

thewebcode 189

九度1502 最大值最小化问题

问题描述: 把一个包含n个正整数的序列划分成m个连续的子序列。设第i个序列的各数之和为S(i),求所有S(i)最大值最小是多少? 例如序列1 2 3 2 5 4划分为3个子序列的最优方案为 1 2 3 | 2 5 | 4,其中S(1),S(2),S(3)分别为6,7,4,那么最大值为7; 如果划分为 1 2 | 3 2 | 5 4,则最大值为9,不是最小。 [2018.3.18...

apk6909的博客 102

【九度OJ】题目1502:最大值最小化

题目1502:最大值最小化 时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:591 解决:229 题目描述: 在印刷术发明之前,复制一本书是一个很困难的工作,工作量很大,而且需要大家的积极配合来抄写一本书,团队合作能力很重要。 当时都是通过招募抄写员来进行书本的录入和复制工作的, 假设现在要抄写m本书,编号为1,2,3...m, 每本书有1&lt;=x&lt;=10000...

想做永动机的滚筒洗衣机 324

二分入门练习题6 最大值最小化 题解

题目描述 在印刷术发明之前,复制一本书是一个很困难的工作,工作量很大,而且需要大家的积极配合来抄写一本书,团队合作能力很重要。当时都是通过招募抄写员来进行书本的录入和复制工作的, 假设现在要抄写 \(m\) 本书,编号为 \(1,2,3...m\) , 每本书有 \(1 \le x \le 100000\) 页, 把这些书分配给 \(k\) 个抄写员,要求分配给某个抄写员的那些书的编号必...

277

UVA 714 Copying Books 抄书 (二分)

题意:把一个包含m个正整数的序列划分成k个非空的连续子序列。使得所有连续子序列的序列和Si的最大值尽量小。 二分,每次判断一下当前的值是否满足条件,然后修改区间。注意初始区间的范围,L应该为所有正整数中的最大值,否则应该判断时注意。输出解的时候要使字典序最小,所以从后面贪心。 #include<bits/stdc++.h> using namespace std; ty...

weixin_34124939的博客 189

题目1502:最大值最小化 二分

题目1502:最大值最小化 时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:583 解决:222 题目描述: 在印刷术发明之前,复制一本书是一个很困难的工作,工作量很大,而且需要大家的积极配合来抄写一本书,团队合作能力很重要。 当时都是通过招募抄写员来进行书本的录入和复制工作的, 假设现在要抄写m本书,编号为1,2,3...m

老李2009 350

最大值最小化

时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:19 解决:9 题目描述: 在印刷术发明之前,复制一本书是一个很困难的工作,工作量很大,而且需要大家的积极配合来抄写一本书,团队合作能力很重要。 当时都是通过招募抄写员来进行书本的录入和复制工作的, 假设现在要抄写m本书,编号为1,2,3...m, 每本书有1 输入: 输入可能包含多个测试样例。 第一行

wujiezhainan的专栏 583

UVa 714 抄书(贪心+二分)

https://vjudge.net/problem/UVA-714 题意:把一个包含m个正整数的序列划分成k个非空的连续子序列,使得每个正整数恰好属于一个序列。设第i个序列的各数之和为S(i),你的任务是让所有S(i)的最大值尽量小。 思路:“最大值尽量小”问题。 区间的范围肯定是所有数中最大的一个至所有数之和,我们可以使用二分法来确定这样的一个值x,x尽量小并且每个区...

weixin_30682127的博客 251

九度 1502:最大值最小化(二分法)

题目描述: 在印刷术发明之前,复制一本书是一个很困难的工作,工作量很大,而且需要大家的积极配合来抄写一本书,团队合作能力很重要。当时都是通过招募抄写员来进行书本的录入和复制工作的, 假设现在要抄写m本书,编号为1,2,3...m, 每本书有1&lt;=x&lt;=100000页, 把这些书分配给k个抄写员,要求分配给某个抄写员的那些书的编号必须是连续的。每个抄写员的速度是相同的,你的任务就是找到...

weixin_33753003的博客 134

最优子序列问题

最优子序列问题 问题描述:把一个包含n个正整数的序列划分成m个连续的子序列(每个正整数恰好属于一个序列)设第i个序列的各数之和为S(i),你的任务是让所有S(i)的最大值尽量小。例如序列1,2,3,2,5,4划分成3个序列的最优方案为1,2,3|2,5|4,其中S(1),S(2),S(3)分别为6,7,4,最大值为7;如果划分成1,2|3,2|5,4,则最大值为9,不如刚...

weixin_30511039的博客 1145

UVa OJ 714 - Copying Books

UVa OJ 714 - Copying BooksProblem把一个包含m个正整数的序列划分成k个(1≤k≤m≤500)非空的连续子序列,使得每个正 整数恰好属于一个序列。设第i个序列的各数之和为S(i),你的任务是让所有S(i)最大值尽 量小。例如,序列1 2 3 2 5 4划分成3个序列的最优方案为1 2 3 | 2 5 | 4,其中S(1)、S(2)、S(3) 分别为6、7、4,最大值

Yuuki_Dach's Blog 549

最大值最小化最大值尽量小)

From:http://www.cnblogs.com/gentleming/archive/2010/07/16/1778926.html 给出是个序列,如1 2 3 2 5 4 ,将其划分成m个连续的子序列,每个子序列最少有一个元素,怎样使每个子序列的和的最大值最小 #include &lt;iostream&gt; #include &lt;ctime&gt; using namesp...

nowting的博客 6396
上一篇: 剑客决斗
下一篇: 网易游戏面试题
和道一文字JC
博客等级 码龄18年 24粉丝 178原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值