Codeforces Round #355 (Div. 2)-B. Vanya and Food Processor,纯考思路~~
1 second
256 megabytes
standard input
standard output
->
Link <-
cf上的题果然很靠思路,这让我想起了学长说的那句话:每A完CF上的一套题都有不同的收获。
这道题题意倒是不难理解:有一台机器,每次只能处理K cm的土豆,这台机器最多能放下hcm的土豆,如果剩下的土豆长度不足K,则1 s将其处理完;问给定顺序的n个土豆最少要用多少时间才能处理完;
看样例就可以懂这道题的题意了,那么怎么做呢?我们发现无论土豆怎么放,每秒最多也只能处理K cm长的土豆,而条件限制是机器里能容纳的最大长度是h,然后就可以用一个贪心策略来解决;我们知道土豆的顺序是固定的,所以我们可以先放第一个,如果长度不足h则再判断下一个是否能放下,如果还能则继续判断下下个是否能够放下,如果当放完前一个,而放后一个总长度就会大于h时,显然不合题意,所以我们得先处理完机器里面的,每处理1 s机器里的总长度就减k,所以处理完需要sum/k的时间,这时机器里面的就可能有剩余了,然后再判断刚刚那个没有放进去的土豆能否放得下,如果可以则继续放,如果这个土豆都不能放下,则刚刚机器里剩余的即使小于k还是需要1
s来处理完,这时机器里的总长度就为0了,然后就相当于回到了初始状态;
这道题我觉得很考思维的地方就在于我们现实中往机器里放东西是要时间的,而这里当机器处理完放东西进去是不用时间的,只需要判断处理的时间与放东西的状态是否符合题意,往往就是受现实生活的影响而影响了自己的思维;
#include<bits/stdc++.h>
using namespace std;
const int N=100000+10;
long long a[N];//注意题目数据范围;
int main()
{
int n,k,h,i;
while(~scanf("%d%d%d",&n,&h,&k))
{
long long x=0;
long long sum=0;
for(i=1; i<=n; i++)
{
scanf("%I64d",&a[i]);
if(a[i]>h) continue;//实际上题目已经说明了,所以可以省略;
if(sum+a[i]>h)//如果当前的土豆不能放进去,所以我们要先处理完机器里面的;
{
x+=sum/k;
sum%=k;
if(sum+a[i]>h)//如果还有剩余,而当前要放进去的土豆又不能放进去则必须先处理完机器里面的;
{
sum=0;
x++;
}
}
sum+=a[i];//将当前待放得土豆放进去;
}
x+=sum/k;
if(sum%k)
x++;
printf("%I64d\n",x);
}
return 0;
}
Codeforces Round #355 (Div. 2)-B. Vanya and Food Processor,纯考思路~~的更多相关文章
- Codeforces Round #355 (Div. 2) B. Vanya and Food Processor 水题
B. Vanya and Food Processor 题目连接: http://www.codeforces.com/contest/677/problem/B Description Vanya ...
- Codeforces Round #355 (Div. 2) B. Vanya and Food Processor
菜菜菜!!!这么撒比的模拟题,听厂长在一边比比比了半天,自己想一想,然后纯模拟一下,中间过程检测一下,妥妥的就可以过. 题意:有N个东西要去搞碎,每个东西有一个高度,然后有一台机器支持里面可以达到的最 ...
- Codeforces Round #355 (Div. 2) D. Vanya and Treasure 分治暴力
D. Vanya and Treasure 题目连接: http://www.codeforces.com/contest/677/problem/D Description Vanya is in ...
- Codeforces Round #355 (Div. 2) C. Vanya and Label 水题
C. Vanya and Label 题目连接: http://www.codeforces.com/contest/677/problem/C Description While walking d ...
- Codeforces Round #355 (Div. 2) A. Vanya and Fence 水题
A. Vanya and Fence 题目连接: http://www.codeforces.com/contest/677/problem/A Description Vanya and his f ...
- Codeforces Round #355 (Div. 2) D. Vanya and Treasure dp+分块
题目链接: http://codeforces.com/contest/677/problem/D 题意: 让你求最短的从start->...->1->...->2->. ...
- Codeforces Round #355 (Div. 2) D. Vanya and Treasure
题目大意: 给你一个n × m 的图,有p种宝箱, 每个点上有一个种类为a[ i ][ j ]的宝箱,a[ i ][ j ] 的宝箱里有 a[ i ][ j ] + 1的钥匙,第一种宝箱是没有锁的, ...
- Codeforces Round #355 (Div. 2)C - Vanya and Label
啊啊啊啊啊啊啊,真的是智障了... 这种题目,没有必要纠结来源.只要知道它的结果的导致直接原因?反正这句话就我听的懂吧... ">>"/"&" ...
- 水题 Codeforces Round #308 (Div. 2) A. Vanya and Table
题目传送门 /* 水题:读懂题目就能做 */ #include <cstdio> #include <iostream> #include <algorithm> ...
随机推荐
- Hanlder + 弱引用防内存漏泄示例*
Hanlder + 弱引用防内存漏泄示例: public class MainActivity extends AppCompatActivity { public final MyHandler h ...
- post和get提交服务器编码过程
参考资料:http://blog.csdn.net/z55887/article/details/46975679 先说出一个知识点: 如果浏览器端编码是UTF-8,那在服务器端解决乱码问题的方法有两 ...
- Object C学习笔记18-SEL,@ selector,Class,@class--转
一. SEL 类型 在上一篇介绍了几个方法,都只是介绍了其使用方式但是没有具体介绍参数: - (id)performSelector:(SEL)aSelector; - (id)performSele ...
- .vue文件在phpstorm中红线解决办法
主要原因是js版本太低, 1,安装vue.js插件, 2,设置file type,vue.js添加 *.vue, 3,切换js版本为es6,
- LoadRunner10自带的WEBTOURS,无法显示Flights页面问题解决办法
[问题描述] 安装LoadRunner10之后,尝试打开自带的webTours页面学习.第一次可以打开,之后安装了一RFT.Oracle等软件,就出现页面无法显示问题.一直以为是Java的问题,尝试各 ...
- Objective-C Memory Management Being Exceptional 异常处理与内存
Objective-C Memory Management Being Exceptional 异常处理与内存 3.1Cocoa requires that all exceptions mu ...
- vs2019装了WDK后,编译其他vc工程,提示无法打开文件"msvcprtd.lib"
今天安装了vs2019,而后又安装了wdk,随便写了一个控制台测试程序,居然报错.网上也查了一圈,也没有得到解决.报错内容如下: MSB8038:已启用Spectre缓解,但找不到Spectre缓解库 ...
- CAD参数绘制对齐标注(com接口)
主要用到函数说明: _DMxDrawX::DrawDimAligned 绘制一个对齐标注.详细说明如下: 参数 说明 DOUBLE dExtLine1PointX 第一条界线开始点X值 DOUBLE ...
- ubuntulinux 更改时区设置时间
Linux/shell命令的实际应用——查看并修改系统时区 命令: www.2cto.com date -R //查询当前系统时间与默认时区 cp /usr/share/zoneinfo/Asia/S ...
- 在vue中场景,循环行,点击当前行编辑数据
当前列表 点击编辑,行变为编辑框. <Row style="color:#999;margin-bottom:11px"> <Row style="ma ...