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

网易有道面试总结 网易有道面试总结 第一次实习生面试给了网易有道,总结一下面试的经验,方便日后回顾。有道的一面和二面主要都是就算法和项目展开,并没有对基础知识进行过多的提问,可以看出在面试官也没有准备的情况下,手写算法一定是面试着重考察的,而算法所占的比重取决于面试官准备的程度。 连续最大子数组 连续最大子数组,并求得起始位置 连续子数组和最小 连续子数组求绝对值和最小 最大存水量 收集雨水 直方图中找最 阅读详情
题目描述:
在印刷术发明之前,复制一本书是一个很困难的工作,工作量很大,而且需要大家的积极配合来抄写一本书,团队合作能力很重要。
当时都是通过招募抄写员来进行书本的录入和复制工作的, 假设现在要抄写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.youkuaiyun.com/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;
}





分治算法应用举例_选择问题、选最大与最小、选第 k 小 选择问题 输入:集合L (含n个不等的实数) 输出:L中第i 小元素 i=n,称为最大元素 i=1, 称为最小元素 位置处在中间的元素,称为中位元素n为奇数,中位数唯一,i= (n+1)/2n为偶数,可指定i= n/2+1 选最大 算法:顺序比较 最坏情况下的时间n-1 最大最小同时选 选最大最小通常算法:1. 顺序比较,先选最大max2. 顺序比较,在剩余数组中选最小min,类似于选最大算法... 阅读详情

相关推荐

【多模态大模型】GLIP:零样本目标检测新范式与视觉语言理解

本文深入解析了多模态大模型GLIP在零样本目标检测和视觉语言理解领域的创新应用。GLIP通过统一目标检测与自然语言理解任务,实现了零样本学习能力,能够精准定位复杂文本描述对应的图像区域。文章详细介绍了GLIP的核心技术、数据策略及实战表现,并对比了与其他多模态模型的差异,为AI视觉理解提供了新范式。

weixin_29186249的博客 263

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

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

张松超的博客 496

基于verilog的16QAM调制

思路1:正交调幅法——实现16QAM调制,可以理解为时相位相差90度的两个正弦波的4PAM叠加。 4比特输入经过2->4进制转化得到两路2比特输入,然后分别经过4PAM后叠加所得输出即为16QAM调制结果。 具体程序稍后编写。 思路2:复合相移法——可以借助前面编写的QPSK,相当于两路幅度不同的QPSK的叠加,比如幅度分别取1和3 。 思路1正交调幅法的设计方案: 两正弦波相位差...

weixin_30725467的博客 2929

最大值最小化(DP)

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

weixin_34186950的博客 290

1.全基因组重测序数据分析介绍

二代测序原理及fastq数据解读、全基因组重测序数据分析内容

weixin_53682198的博客 1883

端侧视觉赋能手游自动化:YOLOv8+NCNN实现低风险挂机与广告拦截

本文提出一种基于端侧AI的移动游戏自动化解决方案,采用YOLOv8目标检测和NCNN推理框架,结合AutoJS实现"感知-决策-执行"闭环。方案通过轻量化模型训练、多分辨率适配和行为拟态优化,解决了传统脚本的适配性和风控问题。关键技术包括:构建游戏专属数据集、模型量化优化、广告拦截和挂机功能实现,具有本地运行、安全稳定等特点,为个人开发者提供了一套完整的自动化开发框架。

milk416666的博客 1264

【九度1502】最大值最小化

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

better_space的博客 525

深入浅出:CosineLRScheduler 调度器的原理与实战应用

本文深入解析了CosineLRScheduler调度器的核心原理与实战应用,详细介绍了余弦退火算法及其在深度学习模型训练中的优势。通过参数配置建议、PyTorch实现示例和常见问题解决方案,帮助开发者高效应用该调度器提升模型性能,特别适用于计算机视觉和自然语言处理任务。

sss66的博客 859

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

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

280

PX4从放弃到精通(二十八):垂起过渡控制

固件版本:1.14.0可加名片交流学习。

超维空间科技的博客 2873

重回童年的经典系列☀️|【炸弹人小游戏】制作过程+解析 | 收藏起来跟曾经的小伙伴一起梦回童年!

Unity,小游戏开发。 本篇文章对童年经典小游戏——炸弹超人进行制作和解析。不知道有没有勾起你童年的回忆呢!快来和我一起制作这个童年经典的小游戏吧! 敬请品尝!

努力前行,总会成为自己心中的那道光 13万+

九度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

MATLAB点云处理总目录

点云处理研究学习

weixin_44329757的博客 2556

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

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

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

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

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

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

thewebcode 189

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

UVa 714 抄书(贪心+二分)

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

weixin_30682127的博客 253

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

UVA 714 Copying Books 抄书 (二分)

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

weixin_34124939的博客 190

最大值最小化

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

wujiezhainan的专栏 584

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

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

老李2009 352

8-10 Coping Books uva714

题意:把一个包含m个正整数的序列划分为k个 1<=k<=m<=500的非空连续子序列 使得每个正整数恰好属于一个序列 设第i个序列的各个数之和为 Si 你的任务是让所有的 Si的最大值尽量小 输出用‘/’划分好的序列 输出时 如果有多解 s1尽量小 如果s1相同 s2尽量小。。。。。 求最大值的最小值 可以采用ida* 但是ida*毕竟是...

weixin_30258027的博客 304

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

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的博客 6397

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 552

UVa 714 抄书 二分答案

题意: 把一个包含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,最大值为7;如果划分成1 2 |...

533

二分答案方法 — 最大值最小化问题

最大值最小化问题(分治解法) 把一个包含n个正整数的序列划分成m个连续的子序列(每个正整数恰好属于一个序列)。设i个序列的各数之和为S(i),你的任务是让所有S(i)的最大值尽量小 #include #include using namespace std; #define N 10 #define INF 1000 int juge(int a[],int mid,int

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

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值