OJ最大值最小化问题(分发书本)
1 // 相当于有n个物品,每个物品的体积V[i],要使得m个容量相同的桶能按顺序装下所有物品,求出桶的最小容量target
2 public int splitArray(int[] V, int m){
3 // 待求解值target的范围为[max,sum]
4 int max = V[0];
5 int sum = V[0];
6 for (int i = 1; i < V.length; i++) {
7 max = Math.max(max,V[i]);
8 sum += V[i];
9 }
10 // 二分法找到target值
11 int left = max;
12 int right = sum;
13 while (left < right) {
14 int mid = (left+right)/2;
15 // 判断当桶子容量为mid时能否装完所有物品,能装完则target <= mid, 不能装完则target > mid
16 if (isFit(V,mid,m)) {
17 right = mid;
18 } else {
19 left = mid+1;
20 }
21 }
22 return left;
23 }
24 // 判断当桶子容量为x时m个桶子能否装完所有物品,true表示可以装完物品,false表示还没装完
25 public boolean isFit(int[] V, int x, int m) {
26 // 当前桶数
27 int count = 1;
28 // 当前桶被填容量
29 int s = 0;
30 for (int i = 0; i < V.length; i++) {
31 // 没超过一个桶容量就放到该桶
32 if (s + V[i] <= x) {
33 s += V[i];
34 } else {
35 // 超过一个桶容量就把该物品放到下一个桶,并把桶数+1
36 s = V[i];
37 count++;
38 }
39 }
40 // 判断桶数是否超过x,count<=x表示没装完桶子,返回true,count>x表示桶子数不够没装完,返回false
41 if (count <= m)
42 return true;
43 else
44 return false;
45 }
OJ最大值最小化问题(分发书本)的更多相关文章
- 九度OJ 1502 最大值最小化(JAVA)
题目1502:最大值最小化(二分答案) 九度OJ Java import java.util.Scanner; public class Main { public static int max(in ...
- BUAA1389愤怒的DZY(最大值最小化)
http://acm.buaa.edu.cn/problem/1389/ 愤怒的DZY[问题描述]“愤怒的小鸟”如今已经是家喻户晓的游戏了,机智的WJC最近发明了一个类似的新游戏:“愤怒的DZY”.游 ...
- UVA 714 Copying Books 最大值最小化问题 (贪心 + 二分)
Copying Books Before the invention of book-printing, it was very hard to make a copy of a book. A ...
- hdu 4004 最大值最小化
http://acm.hdu.edu.cn/showproblem.php?pid=4004 一条线段长度为L,线段上有n个点,最多选取 m-1 个点,使得包括线段端点在内的相邻点之间的最大距离值最小 ...
- Crowd Control(输出不在最大值最小化的最短路上的边)
题意: 就是求完最大值最小化 然后输出在这条最大值最小化的最短路上的点的不在最短路上的边,emm.... 解析: 很明显,先套spfa最大值最小化模板,emm... 在更新d的时候 用一个pre去记 ...
- UVa 714 Copying books 贪心+二分 最大值最小化
题目大意: 要抄N本书,编号为1,2,3...N, 每本书有1<=x<=10000000页, 把这些书分配给K个抄写员,要求分配给某个抄写员的那些书的编号必须是连续的.每个抄写员的速度是相 ...
- Monthly Expense(最大值最小化问题)
POJ-3273 ...
- uva 714 Copying Books(二分法求最大值最小化)
题目连接:714 - Copying Books 题目大意:将一个个数为n的序列分割成m份,要求这m份中的每份中值(该份中的元素和)最大值最小, 输出切割方式,有多种情况输出使得越前面越小的情况. 解 ...
- uva 714 - Copying Books(贪心 最大值最小化 二分)
题目描写叙述开头一大堆屁话,我还细致看了半天..事实上就最后2句管用.意思就是给出n本书然后要分成k份,每份总页数的最大值要最小.问你分配方案,假设最小值同样情况下有多种分配方案,输出前面份数小的,就 ...
随机推荐
- Dart简明教程
[前言]Dart语言是使用flutter框架开发时候必备的语言,flutter是一个跨平台的框架,一套代码就可以完美实现安卓和ios两个平台,适配也很不错,Dart语言很友好,和java很类似,学习成 ...
- Webpack 学习笔记(1) 开始
目录 参考资料 1. 基础设定 2. 创建一个包 3. 使用配置文件完成打包命令 4. 使用 NPM Scripts 完成打包命令 参考资料 Getting Started | Webpack web ...
- 写了一个 gorm 乐观锁插件
前言 最近在用 Go 写业务的时碰到了并发更新数据的场景,由于该业务并发度不高,只是为了防止出现并发时数据异常. 所以自然就想到了乐观锁的解决方案. 实现 乐观锁的实现比较简单,相信大部分有数据库使用 ...
- ssh 免登录配置
引子 近日海淘了一个 mini-PC:Gigabyte GB-BSRE-1605,此设备虽采用 amd 嵌入式低功耗处理器,性能相比现在自己所用的设备却有不小提升,加上先前升级电脑多余一些 ssd 和 ...
- 使用pr进行视频的剪辑
本人作为一个经常浪迹在各个小视频的网站的视频界"gai溜子",很是喜欢一些人上传的综艺或者电影的搞笑搞笑小桥段,有的剪辑下来的片段甚至会比我们自己去看还要有意思的多.我认为视频剪辑 ...
- 201871030134-余宝鹏 实验二 个人项目一 《D{0-1}KP》项目报告
项目 内容 课程班级博客链接 班级博客 这个作业要求链接 作业要求 我的课程学习目标 1.掌握软件项目个人开发流程2.掌握Github发布软件项目的操作方法 这个作业帮助我在哪些方面实现学习目标 1. ...
- 京东效率专家带你快速落地DevOps
行业内的公司纷纷在招聘DevOps工程师,企业的DevOps转型看起来迫在眉睫,公司内部也要设计和开发DevOps平台,DevOps已经成为了所有IT从业人员应知应会的必备技能. 为你提供一套清晰的D ...
- Leedcode算法专题训练(链表)
1.发现两个链表的交点 160.两个链表的交集(容易) Leetcode /力扣 public class Solution { public ListNode getIntersectionNode ...
- Mysql 添加 create_time, update_time 创建时间 更新时间 自动更新
# 添加 创建 更新 时间字段 ALTER TABLE `表名` ADD COLUMN `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTA ...
- 在Linux CentOS上搭建Jmeter压测环境
本文的主要内容是介绍如何在Linux CentOS 服务器上面搭建Jmeter的压测环境整个详细的流程,来满足我们日常工作中对于压力测试环境搭建.压力测试执行过程的需求. 一.首先我们要准备四个东西, ...