小明喜欢把土豆块放在食物处理器中处理。长度不超过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. Chrome禁止http自动转为https

    解决方法 在Chrome浏览器地址栏输入chrome://net-internals/#hsts 在Delete domain security policies 中输入要删除自动转换的域名 原因 将 ...

  2. EF+LINQ事物处理

    在使用EF的情况下,怎么进行事务的处理,来减少数据操作时的失误,比如重复插入数据等等这些问题,这都是经常会遇到的一些问题 但是如果是我有多个站点,然后存在同类型的角色去操作同一条数据的同一个字段的话, ...

  3. PHP遍历指定目录,并存储目录内所有文件属性信息

    项目需要,需要写一个函数,能够遍历指定目录中的所有文件,而且这个目录中的子目录也要遍历.输出文件的属性信息,并存储. 想想需求,不就是一个ls -al命令吗,实现获取相关属性就好了,再加上一个遍历OK ...

  4. s:iterator 标签使用错误记录

    <s:iterator value="newMarriageMoveList" id='tpNewMarriage' status="number"> ...

  5. 开发第一个flutter程序 hello world

    上一篇咱们配置了flutter的基本环境之后,那么本篇就来讲一下如何开发第一个小应用hello world 双击打开 android studio 选择plugins 找到 fultter 并且下载安 ...

  6. Socket网络编程--小小网盘程序(1)

    这个系列是准备讲基于Linux Socket进行文件传输.简单的文件传输就是客户端可以上传文件,可以从服务器端下载文件.就这么两个功能如果再加上身份验证,就成了FTP服务器了,如果对用户的操作再加上一 ...

  7. What-does-git-remote-and-origin-mean

    https://www.quora.com/What-does-git-remote-and-origin-mean https://stackoverflow.com/questions/29235 ...

  8. 针对个别utf8编码站点在iis7上浏览器编码不能自动识别的解决方法

    个别utf8编码站点在iis7上客户端浏览器编码不能自动识别的编号,输入仍为gbk2312,而不是utf-8,这样导致我们看到的网站为乱码. 要解决这个问题,有两个方法,一为打开网站以后,右键,选择编 ...

  9. linux每日命令(20):find命令概览

    Linux下find命令在目录结构中搜索文件,并执行指定的操作.Linux下find命令提供了相当多的查找条件,功能很强大.由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时 ...

  10. python bottle框架 解决跨域问题的正确方式

    经查询,网上有几种说法 https://www.cnblogs.com/EmptyFS/p/6138923.html 我首先查到的就是这个,我采用了文中所说的修改源码的方式, 但是经测试发现,修改源码 ...