小明喜欢把土豆块放在食物处理器中处理。长度不超过H的土豆块放入处理器中,处理器每秒处理长度为k(即土豆块长度减少k)。如果土豆块长度小于k,土豆块会被完全处理掉。
 
小明有n块土豆,第i块土豆的长度为ai 。小明把这些土豆块一块一块地从编号1到n地放入处理器中。每秒钟处理器中都发生着以下事情:
 
如果有至少一块剩余的土豆,小明一个接一个地把土豆块放在处理器中,直到没有足够的空间放下一块。
 
Input
第一行n, h , k (1≤n≤100?000,1≤k≤h≤10^9)
 
第二行n个ai (1≤ai≤h)
 
Output
处理完所有土豆花费的时间
 
Sample Input
5 6 3
5 4 3 2 1
5 6 3
5 5 5 5 5
5 6 3
1 2 1 1 1
 
Sample Output
5
10
2
 
 
 
对题目加一点描述(我会说我第一次看这个题目愣是没看懂???):只有一个处理器,每时每刻都在处理,处理完的部分长度就消失了,空出来的长度能够放得下下一个,就可以放新的,小明放土豆的时间趋于零。
 
考虑的情况就是两步反复循环:
①先把从当前位置开始,把所有能放的进去的土豆都放进去。
②机器处理一下,同时计算一下耗时。
 
但是值得注意的是,本体的时间限制,如下的代码是会超时的:
 #include<stdio.h>
int main()
{
int n,h,k,p[];
while(scanf("%d %d %d",&n,&h,&k)==){
int i,time=,ct=;
for(i=;i<n;i++) scanf("%d",&p[i]);p[i]=;
ct=p[i=];//先把第一个土豆放进去
while(i<n){
while(ct+p[i+]<=h && p[i+]!=) ct+=p[++i];//①
ct-=k;if(ct<) ct=;time++;//处理器处理一秒
if(i==n-&& ct==)break;//判断是不是土豆已经被完全处理完
}
printf("%d\n",time);
}
}

因为n可以很大,如果每次只处理掉1秒的(呱),那么循环次数太多就太慢。

因而要把“处理器处理一秒”改作②:
 #include<stdio.h>
int main()
{
int n,h,k,p[];
while(scanf("%d %d %d",&n,&h,&k)!=EOF){
int i,time=,ct=;
for(i=;i<n;i++) scanf("%d",&p[i]);p[i]=;
ct=p[i=];
while(i<n){
while(ct+p[i+]<=h && p[i+]!=) ct+=p[++i];//①
if(ct>k){time+=ct/k;ct%=k;}
else{ct=;time++;} //②处理器处理多秒
if(i==n-&& ct==)break; //判断是不是土豆已经被完全处理完
}
printf("%d\n",time);
}
}

感觉好像也是有那么点贪心思想的……

JNUOJ 1032 - 食物处理器的更多相关文章

  1. 处理器 趣事 CPU/GPU/TPU/DPU/BPU

    有消息称,阿里巴巴达摩院正在研发一款神经网络芯片——Ali-NPU,主要运用于图像视频分析.机器学习等AI推理计算.按照设计,这款芯片性能将是目前市面上主流CPU.GPU架构AI芯片的10倍,而制造成 ...

  2. [转] 2018年最新桌面CPU性能排行天梯图(含至强处理器)

    [FROM] http://www.idn100.com/zuzhuangdiannaopeizhi-pc2849/ 排名 处理器 图例 分数 1 Intel Xeon Platinum 8173M ...

  3. 前端CSS预处理器Sass

    前面的话   "CSS预处理器"(css preprocessor)的基本思想是,用一种专门的编程语言,进行网页样式设计,然后再编译成正常的CSS文件.SASS是一种CSS的开发工 ...

  4. MyBatis源码分析(二)语句处理器

    StatementHandler 语句处理器,主要负责语句的创建.参数的设置.语句的执行.不负责结果集的处理. Statement prepare(Connection connection, Int ...

  5. 第六代智能英特尔® 酷睿™ 处理器图形 API 开发人员指南

    欢迎查看第六代智能英特尔® 酷睿™ 处理器图形 API 开发人员指南,该处理器可为开发人员和最终用户提供领先的 CPU 和图形性能增强.各种新特性和功能以及显著提高的性能. 本指南旨在帮助软件开发人员 ...

  6. css预处理器sass使用教程(多图预警)

    css预处理器赋予了css动态语言的特性,如变量.函数.运算.继承.嵌套等,有助于更好地组织管理样式文件,以及更高效地开发项目.css预处理器可以更方便的维护和管理css代码,让整个网页变得更加灵活可 ...

  7. 基于ARM处理器的反汇编器软件简单设计及实现

    写在前面 2012年写的毕业设计,仅供参考 反汇编的目的 缺乏某些必要的说明资料的情况下, 想获得某些软件系统的源代码.设计思想及理念, 以便复制, 改造.移植和发展: 从源码上对软件的可靠性和安全性 ...

  8. 基于英特尔® 至强™ 处理器 E5 产品家族的多节点分布式内存系统上的 Caffe* 培训

    原文链接 深度神经网络 (DNN) 培训属于计算密集型项目,需要在现代计算平台上花费数日或数周的时间方可完成. 在最近的一篇文章<基于英特尔® 至强™ E5 产品家族的单节点 Caffe 评分和 ...

  9. 基于英特尔® 至强 E5 系列处理器的单节点 Caffe 评分和训练

    原文链接 在互联网搜索引擎和医疗成像等诸多领域,深度神经网络 (DNN) 应用的重要性正在不断提升. Pradeep Dubey 在其博文中概述了英特尔® 架构机器学习愿景. 英特尔正在实现 Prad ...

随机推荐

  1. 【Windows】Windows中解析DOS的DIR命令使用

    总结一下cmd中的dir命令的用法 64位win10系统上,打印帮助文档. D:\test>dir /? 显示目录中的文件和子目录列表. DIR [drive:][path][filename] ...

  2. swift4.0 对 afn 进行二次封装

    先将  afn 用pod导入到 工程中 创建一个类 ZHttpTools 继承自 AFHTTPSessionManager 一般我们不希望网络请求同时有多个存在,所以我们将这个工具类  设计成单例 代 ...

  3. ④NuPlayer播放框架之Renderer源码分析

    [时间:2016-11] [状态:Open] [关键词:android,nuplayer,开源播放器,播放框架,渲染器,render] 0 导读 之前我们分析了NuPlayer的实现代码,本文将重点聚 ...

  4. [INS-20802] Oracle Net Configuration Assistant failed

    [INS-20802] Oracle Net Configuration Assistant failed.在安装Oracle 11g R2时出现了该错误提示.以前安装的时候没有碰到过类似的错误.原来 ...

  5. 【6集iCore3_ADP触摸屏驱动讲解视频】6-3 底层驱动之液晶显示

    源视频包下载地址: 链接:http://pan.baidu.com/s/1pKSUU2v 密码:4zme   银杏科技优酷视频发布区: http://i.youku.com/gingko8    

  6. linux基础知识 【转】

    linux目录架构 / 根目录 /bin 常用的命令 binary file 的目錄 /boot 存放系统启动时必须读取的档案,包括核心 (kernel) 在内 /boot/grub/menu.lst ...

  7. 重新入坑-IntelliJ Maven

    写Restful的服务,使用IntelliJ+maven,发现有几个依赖总是没法配置好.通过检查POM.xml,发现犯了错误,<dependency>写到了<dependencies ...

  8. Java知多少(5) Java开发环境的搭建

    要进行Java开发,首先要安装JDK(Java Development Kit,Java开发工具箱). JDK 是一系列工具的集合,这些工具是编译Java源码.运行Java程序所必需的,例如JVM.基 ...

  9. Java知多少(45)未被捕获的异常

    在你学习在程序中处理异常之前,看一看如果你不处理它们会有什么情况发生是很有好处的.下面的小程序包括一个故意导致被零除错误的表达式. class Exc0 { public static void ma ...

  10. python初级 1 数据类型和变量

    一.整数(int) 例:  0 1 2 3 -1 -2 –3 In [31]: print(type(0)) <class 'int'> In [32]: print(type(1)) & ...