题目链接:https://ac.nowcoder.com/acm/contest/886/D

题意:给n个物品,每个物品有一个体积值,K个箱子,问箱子的最小体积为多少可将物品全部装下。

思路:比赛时一看到题,就认定是二分,然后就wa了三小时。赛后知道这部满足二分的单调性,比如官方题解的例子:

  

   正确做法是暴力枚举即可,答案下界为sum/K,上界为sum/K+maxv。上界证明如下:

  

   对每一个答案的判断的复杂度为nlogn,所以总复杂度为O(maxv×nlogn)。

AC代码:

#include<cstdio>
#include<algorithm>
#include<vector>
using namespace std; const int maxn=;
int T,n,K,cas,v[maxn];
vector<int> vc; int work(int x){
vc.clear();
vc.push_back();
for(int i=;i<=n;++i)
vc.push_back(v[i]);
vc.push_back(0x3f3f3f3f);
int res=,num=;
while(){
++res;
int now=x,ri=vc.size()-;
while(){
int l=,r=ri,mid;
while(l<=r){
mid=(l+r)>>;
if(vc[mid]<=now) l=mid+;
else r=mid-;
}
if(!r) break;
else{
now-=vc[r];
++num;
vector<int>::iterator it=vc.begin()+r;
vc.erase(it);
if(now<vc[]) break;
ri=r-;
}
}
if(num==n) break;
}
return res;
} int main(){
scanf("%d",&T);
while(T--){
scanf("%d%d",&n,&K);
int sum=;
for(int i=;i<=n;++i){
scanf("%d",&v[i]);
sum+=v[i];
}
sort(v+,v++n);
if(K>=n){
printf("Case #%d: %d\n",++cas,v[n]);
continue;
}
int l=sum/K,r=sum/K+v[n];
for(int i=l;i<=r;++i)
if(work(i)==K){
printf("Case #%d: %d\n",++cas,i);
break;
}
}
return ;
}

2019牛客暑期多校训练营(第六场)-D Move的更多相关文章

  1. 2019牛客暑期多校训练营(第六场)C - Palindrome Mouse (回文自动机)

    https://ac.nowcoder.com/acm/contest/886/C 题意: 给出一个串A , 集合S里面为A串的回文字串 , 现在在集合S里面找出多少对(a,b),b为a的字串 分析: ...

  2. 2019牛客暑期多校训练营(第六场)J Upgrading Technology

    传送门 题意: 就是给你n个技能,每个技能最高升到m级,每升一级就是耗费Cij钱,这个Cij可能是负的,如果所有技能都升到或者说超过j等级,就会获得Dj钱,这个Dj也有可能是负值,让你求你最多得到多少 ...

  3. 2019牛客暑期多校训练营(第九场)A:Power of Fibonacci(斐波拉契幂次和)

    题意:求Σfi^m%p. zoj上p是1e9+7,牛客是1e9:  对于这两个,分别有不同的做法. 前者利用公式,公式里面有sqrt(5),我们只需要二次剩余求即可.     后者mod=1e9,5才 ...

  4. 2019牛客暑期多校训练营(第一场)A题【单调栈】(补题)

    链接:https://ac.nowcoder.com/acm/contest/881/A来源:牛客网 题目描述 Two arrays u and v each with m distinct elem ...

  5. 2019牛客暑期多校训练营(第一场) B Integration (数学)

    链接:https://ac.nowcoder.com/acm/contest/881/B 来源:牛客网 Integration 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 5242 ...

  6. 2019牛客暑期多校训练营(第一场) A Equivalent Prefixes ( st 表 + 二分+分治)

    链接:https://ac.nowcoder.com/acm/contest/881/A 来源:牛客网 Equivalent Prefixes 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/ ...

  7. 2019牛客暑期多校训练营(第二场)F.Partition problem

    链接:https://ac.nowcoder.com/acm/contest/882/F来源:牛客网 Given 2N people, you need to assign each of them ...

  8. 2019牛客暑期多校训练营(第一场)A Equivalent Prefixes(单调栈/二分+分治)

    链接:https://ac.nowcoder.com/acm/contest/881/A来源:牛客网 Two arrays u and v each with m distinct elements ...

  9. [状态压缩,折半搜索] 2019牛客暑期多校训练营(第九场)Knapsack Cryptosystem

    链接:https://ac.nowcoder.com/acm/contest/889/D来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 262144K,其他语言52428 ...

  10. 2019牛客暑期多校训练营(第二场)J-Subarray(思维)

    >传送门< 前言 这题我前前后后看了三遍,每次都是把网上相关的博客和通过代码认真看了再思考,然并卵,最后终于第三遍也就是现在终于看懂了,其实懂了之后发现其实没有那么难,但是的的确确需要思维 ...

随机推荐

  1. 简单理解yii事件

    https://blog.csdn.net/qq43599939/article/details/80363827  通过观察者来理解yii事件 测试 class TestController ext ...

  2. 转:Jmeter文件上传、下载

    一.上传/下载的过程.        上传的过程就是你把你本地的文件,扔到服务器上的这么一个过程.        下载呢,就是把服务器上的文件拿过来,然后存到你本地的这么一个过程.        总结 ...

  3. jQuery的入口函数

    原生的JS的入口函数指的是:window.onload = function(){}: 如下所示: //原生js的入口函数.页面上所有内容加载完毕, 才执行.//不仅要等文本加载完毕, 而且要等图片也 ...

  4. PHP开发框架CI——学习小记

    之前做后端开发的时候,因为都是很小的功能或项目,所以基本都是手写原生php.不过这样的开发效率在面对稍大一些的项目的时候是比较低的.因此花时间学习一下php相关框架CI的使用. MVC架构 在学习CI ...

  5. JSON数据的缓存

    前端有时候会遇到JSON数据的缓存,后台给我们JSON数据是一个对象,直接缓存起来它存的是字符串 "[object Object]".这是因为在缓存时会隐式调用toString方法 ...

  6. Vue_(Router路由)-vue-router路由的基本用法

    vue-router官网:传送门 vue-router起步:传送门 vue-router路由:Vue.js官网推出的路由管理器,方便的构建单页应用 单页应用:Single Page Applicati ...

  7. 2018-2019-2 20165330《网络对抗技术》Exp7 网络欺诈防范

    目录 基础问题 相关知识 实验目的 实验内容 实验步骤 实验中遇到的问题 实验总结与体会 实验目的 本实践的目标理解常用网络欺诈背后的原理,以提高防范意识,并提出具体防范方法. 返回目录 实验内容 简 ...

  8. LC 794. Valid Tic-Tac-Toe State

    A Tic-Tac-Toe board is given as a string array board. Return True if and only if it is possible to r ...

  9. Horovod 通信策略

    因为最近的工作要和Horovod打交道,所以分析了Horovod的源码.在这里记一笔. Horovod有几个亮点,第一,它不依托于某个框架,自己通过MPI建立了一套分布式系统,完成了allreduce ...

  10. 如何应对POST方式下载文件的接口

    jQuery的下载,需要承载一个插件去做 今天遇到一个问题,后台给的接口由于需要前端传入过多的参数,只能接受用post去下载文件.正常情况下第一反应是用xhr对象去发送post请求,结果并没有触发浏览 ...