http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3778

题目

某人做菜很厉害,一分钟能同时完成最多m个菜的一道工序,输入菜的个数n和整数m,再输入每个菜的工序数,输出最短时间。

范围:

1 <= N, M <= 40000

1 <= Ai <= 40000

Sample Input

2
3 2
2 2 2
10 6
1 2 3 4 5 6 7 8 9 10

Sample Output

3
10

题解

贪心,策略是每次选择剩余工序最多的m个菜,选其他的结果肯定不会变好,时间复杂度$\mathcal{O}(n^2\log n)$绝对超时

比如:

发现可以把这张图分成两部分,就是足够一次完成m道工序的情况和不能一次完成m道工序的情况,能一次完成m道工序很简单,直接除法就好了,剩下不能一次完成m道工序的部分

这个只是中间状态,还有能完成m道工序的部分

一直到下面这种情况

然后就发现经过的时间就等于蓝色部分的高度(只算一道菜……),因为总是从蓝色部分开始往右选择工序

设答案为和除以m

有一个问题,就是如果不能整除怎么办,为什么不能整除

不能整除说明存在黄色部分,需要加这部分高度,即答案+1

剩下黄色部分就是不能一次完成m道工序的部分(按行),因此答案是蓝色部分高度加黄色部分的高度,因为黄色部分除以m肯定小于黄色部分的高度,因此和除以m一定小于最高高度,所以这个时候可以直接让答案为最高高度

AC代码

#include<cstdio>
#include<cstring>
#include<cmath>
#define REP(r,x,y) for(register int r=(x); r<(y); r++)
#define REPE(r,x,y) for(register int r=(x); r<=(y); r++)
#define PERE(r,x,y) for(register int r=(x); r>=(y); r--)
#ifdef sahdsg
#define DBG(...) printf(__VA_ARGS__), fflush(stdout)
#else
#define DBG(...) (void)0
#endif // sahdsg
using namespace std;
typedef long long LL;
inline int max(int a, int b) {
return a>b?a:b;
}
#define MAXN 30000007
typedef long long LL;
int main() {
int t; scanf("%d", &t);
while(0<t--) {
int n,m;
scanf("%d%d", &n, &m);
int maxx=-1;
LL sum=0;
REP(i,0,n) {
int k; scanf("%d", &k);
maxx = max(maxx,k);
sum+=k;
}
LL ans=sum/m;
if(sum%m) ans++;
if(ans<maxx) ans=maxx;
printf("%lld\n", ans);
}
}

ZOJ 3778 Talented Chief的更多相关文章

  1. ZOJ 3778 Talented Chef(找规律,模拟计算,11届ACM省赛,简单)

    题目链接 2014年浙江省赛C题,当时觉得难,现在想想这题真水.. 找规律: 若   最大的那个步骤数*m-总和>=0,那么答案就是 最大的那个步骤数 . 否则  就要另加上不够的数量,具体看代 ...

  2. zoj 3778 Talented Chef(思维题)

    题目 题意:一个人可以在一分钟同时进行m道菜的一个步骤,共有n道菜,每道菜各有xi个步骤,求做完的最短时间. 思路:一道很水的思维题, 根本不需要去 考虑模拟过程 以及先做那道菜(比赛的时候就是这么考 ...

  3. ZOJ 3778 Talented Chef

    题目链接 题意 : 这个人需要做n道菜,每道菜Ai步,他可以同时做M道不同的菜的其中一步,问你最少需要多少时间能做完所有的菜. 思路 : 这个题比赛的时候禁锢思路了,根本没想出来,就是当M > ...

  4. ZOJ 3778 Talented Chef 模拟 [ 祝愿明天省赛一帆风顺, ZJSU_Bloom WILL WIN : )

    这题的意思是给你 n 道菜,第 i 道菜需要 Ai 步才能完成 每次你能对 m 道菜分别完成一步,请问最少需要几次? 这题暴力写肯定是不行的,去年省赛的时候就是没写出来这题,今天再把思路理一理吧. 首 ...

  5. Talented Chef ZOJ - 3778

    As we all know, Coach Gao is a talented chef, because he is able to cook M dishes in the same time. ...

  6. ZOJ 3778 C - Talented Chef 水题

    LINK:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3778 题意:有n道菜,每道菜需要\(a_i\)道工序,有m个锅可 ...

  7. ZOJ 3778:Talented Chef(贪心?思维)

    Talented Chef Time Limit: 2 Seconds Memory Limit: 65536 KB As we all know, Coach Gao is a talented c ...

  8. Zoj 3781(构造)

    Zoj 3781(构造) Zoj 3781 As we all know, Coach Gao is a talented chef, because he is able to cook M dis ...

  9. ZOJ People Counting

    第十三届浙江省大学生程序设计竞赛 I 题, 一道模拟题. ZOJ  3944http://www.icpc.moe/onlinejudge/showProblem.do?problemCode=394 ...

随机推荐

  1. NET Framework项目移植到NET Core上踩的坑(1)

    本文章向大家介绍NET Framework项目移植到NET Core上遇到的一系列坑,主要包括NET Framework项目移植到NET Core上遇到的一系列坑使用实例.应用技巧.基本知识点总结和需 ...

  2. js (单个的)点击式下拉菜单

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  3. Flask 模板语言,装饰器

      Jinja2模板语言 # -*- coding: utf-8 -*-   from flask import Flask, render_template, request, redirect,  ...

  4. 着色器语言GLSL入门

    着色器语言 GLSL (opengl-shader-language)入门大全 -- 转载自: https://github.com/wshxbqq/GLSL-Card

  5. 《Python3 网络爬虫开发实战》学习资料

    <Python3 网络爬虫开发实战> 学习资料 百度网盘:https://pan.baidu.com/s/1PisddjC9e60TXlCFMgVjrQ

  6. PWA 学习笔记(四)

    Service Worker 简介: 1.Service Worker 是 PWA 技术基础之一,脱离浏览器主线程的特性,使得 Web App 离线缓存成为可能, 更为后台同步.通知推送等功能提供了思 ...

  7. 表单生成器(Form Builder)之伪造表单数据番外篇——指定范围随机时间

    为了伪造一些尽量真实的假数据,也真是够费劲的.上一篇笔记记录了一下获取一个随机车辆牌照,这篇笔记记录一下怎么获取一个随机时间.这篇就不说那么多废话了,直接上代码 // 获取指定范围的随机数 var g ...

  8. RTP Payload Format for VP8 Video

    整体结构 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+ ...

  9. ccf-csp201809题解

    目录 ccf-csp201809题解 1. 201809-1 卖菜 题目描述 解析 通过代码 2. 201809-2 买菜 题目描述 解析 通过代码 3.201809-3 元素选择器 题目描述 解析 ...

  10. CF1062F Upgrading Cities

    题意 由于这是个\(DAG\),我们考虑拓朴排序,求某个点能到的和能到它的点,这是两个问题,我们可以正反两边拓朴排序,这样就只用考虑它能到的点了 设\(f[x]\)表示\(x\)能到的点数\(+\)能 ...