小L的试卷
题目描述
小L期末考试结束,高高兴兴放假回家了,可是那么多试卷,老师还要加班批改,有n份试卷由k个老师批改,n份试卷进行了密封编号,由于试卷上的做题情况和书写的规范程序不一样,
批改不同的试卷用时也可能不一样,每个老师批改试卷的编号顺序是连续的,每位老师批改完分配给自己的试卷就可以离开,问最后离开的老师,最短可能的用时是多少,
假定一份试卷让任何一位老师批改用时都是一样的。现在请你设计一种分配方案,使得最后离开的老师用时最短。
输入
第一行两个整数n,k;(0<k≤n≤1000)
第二行n个整数,第i个整数表示批改第i份试卷的用时。
输出
输出一个整数,表示最后离开的老师所用的最短时间
样例输入 Copy
9 3
1 2 3 4 5 6 7 8 9
样例输出 Copy
17
二分法,这一题有点小难度。。。
首先,任意找一个数字运用二分法,
#include<iostream>
using namespace std;
typedef long long ll;
const ll inf = 0x3f3f3f3f;
const int maxn = 1e5 + ;
int n , k;
ll a[maxn];
long y=;
bool isok(int x)
{
if(y<x) return true;// r=mid-1
else return false;//l=mid+1
}
int main()
{
ll l = , r = inf;
while (l <= r)
{
int mid = (l + r) / ;
if (isok(mid)) r = mid-;
else l = mid + ;
} cout << l << endl;
return ;
}
#include<iostream>
using namespace std;
typedef long long ll;
const ll inf = 0x3f3f3f3f;
const int maxn = 1e5 + ; int n , k;
ll a[maxn]; bool isok(int x)
{
int num = ;
ll temp = ;
for (int i=; i<=n; i++)
{
if (a[i] > x) return false; //数值增大
temp += a[i];
if (temp > x)
{
num ++; //统计分段次数
temp = a[i]; // l作为最后的情况,其他情况要小于l
}
}
if (temp > ) num ++;
if (num <= k) return true;//统计段数小于k l减小
else return false;//增大
}
int main()
{
scanf("%d%d", &n, &k);
for (int i=; i<=n; i++) scanf("%lld", &a[i]);
ll l = , r = inf;
while (l <= r)
{
int mid = (l + r) / ;
if (isok(mid)) r = mid-;
else l = mid + ;
} cout << l << endl;
return ;
}
我开始考虑的是找寻最短完成任务的时间,即每个老师批改的顺序不连续,
首先建立数组,arr[n] 将arr【n】由大往小排序,求a[0....k-1] 中最小的数字然后加上后面的数字,最终可以求出最小的数。
小L的试卷的更多相关文章
- 洛谷U4727小L的二叉树[树转序列 LIS]
题目背景 勤奋又善于思考的小L接触了信息学竞赛,开始的学习十分顺利.但是,小L对数据结构的掌握实在十分渣渣. 所以,小L当时卡在了二叉树. 题目描述 在计算机科学中,二叉树是每个结点最多有两个子结点的 ...
- ACM D的小L
D的小L 时间限制:4000 ms | 内存限制:65535 KB 难度:2 描述 一天TC的匡匡找ACM的小L玩三国杀,但是这会小L忙着哩,不想和匡匡玩但又怕匡匡生气,这时小L给 ...
- nyoj-366-D的小L(求全排列)
D的小L 时间限制:4000 ms | 内存限制:65535 KB 难度:2 描述 一天TC的匡匡找ACM的小L玩三国杀,但是这会小L忙着哩,不想和匡匡玩但又怕匡匡生气,这时小L给匡匡 ...
- 洛谷U4727 小L 的二叉树
U4727 小L 的二叉树 题目背景 勤奋又善于思考的小L接触了信息学竞赛,开始的学习十分顺利.但是,小L对数据结构的掌握实在十分渣渣. 所以,小L当时卡在了二叉树. 题目描述 在计算机科学中,二叉树 ...
- 【BZOJ4030】[HEOI2015]小L的白日梦
[BZOJ4030][HEOI2015]小L的白日梦 题面 BZOJ 洛谷 题解 要求的是最小的不开心连续段的期望. 然后发现自己就不会做了. 然后就可以来抄题解啦. 首先来猜性质: 第一个,一定是按 ...
- BZOJ 4030: [HEOI2015]小L的白日梦
4030: [HEOI2015]小L的白日梦 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 172 Solved: 39[Submit][Statu ...
- 小L记单词
题目描述 小L最近在努力学习英语,但是对一些词组总是记不住,小L小把这些词组中每一个单词的首字母都记一下,这样形成词组的缩写,通过这种方式小L的学习效率明显提高. 输入 输入有多行,每组测试数据占一行 ...
- 小L的项链切割 (回文串)
题目描述 小T送给了小L了一串项链.为了方便,我们把项链上形态不同钻石用不同的字母表示.这样小L的项链就变成了一个字符串.小L忽然想把这串项链优美地切割一下,她想把它切割成尽量少的回文项链,啊也就是回 ...
- 小L的区间求和
题目描述 在给定的一个整数序列中,小L希望找到一个连续的区间,这个区间的和能够被k整除,请你帮小L算一下满足条件的最长的区间长度是多少. 输入 第一行输入两个整数n.k.(1 <= n < ...
随机推荐
- MyBatis笔记----报错:Exception in thread "main" org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)解决方法
报错 Exception in thread "main" org.apache.ibatis.binding.BindingException: Invalid bound st ...
- 深入了解IOC
老师在简书写的一篇博客 https://www.jianshu.com/p/79f8331e1f24
- 想起以前写的一个爬虫,然后就用C#WinForm写了一个下载小说的软件,比较简单
本软件本是练习.讨论爬虫技术所用.如果侵犯了您的利益请联系我,我会立即删除! 小工具安装包: 百度网盘链接:https://pan.baidu.com/s/1m_OuEBOEE47kYaXq5fwpI ...
- Mysql --学习:大量数据快速导入导出
声明:此文供学习使用,原文:https://blog.csdn.net/xiaobaismiley/article/details/41015783 [实验背景] 项目中需要对数据库中一张表进行重新设 ...
- JavaScript -- 时光流逝(十二):DOM -- Element 对象
JavaScript -- 知识点回顾篇(十二):DOM -- Element 对象 (1) element.accessKey: 设置或返回accesskey一个元素,使用 Alt + 指定快捷键 ...
- Docker: docker container常用命令实战
容器管理,容器常用选项 选项 描述 -i, –interactive 交互式 -t, –tty 分配一个伪终端 -d, –detach 运行容器到后台 -e, –env 设置环境变量 -p, –pub ...
- Linux for Python教程01
目录 1. Linux和操作系统 1.1. 什么是操作系统 1.2. 现有操作系统 1.3. Linux用户目录 1.4. Linux文件权限 2. Linux命令 2.1 文件管理相关 (1).ls ...
- Vmware12安装centos系统详解
vmware12安装centos7系统详解 用虚拟机12安装centos7系统详细安装过程,后附centos7下载地址. 工具/原料 虚拟机12 centos7系统镜像 方法/步骤 1 1.百度搜索c ...
- eshint的配置
{ "strict" : "implied", //文件里面使用"use strict" "undef" : true, ...
- nginx学习笔记(二)
tail -f /var/log/nginx/access.log 查看nginx访问日志 安装ab压测工具 连接限制只有公有云才能测出,虚拟机只能测请求限制 添加用户 覆盖用户 新增用户 文件是配置 ...