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> ...
随机推荐
- Wannafly挑战赛10:A题:小H和迷宫
题目描述 小H陷入了一个迷宫中,迷宫里有一个可怕的怪兽,血量有N点,小H有三瓶魔法药水,分别可以使怪兽损失a%.b%.c%的血量(之后怪兽的血量会向下取整),小H想合理地运用这三瓶药水,使 ...
- .NET 之ViewState的本质
ViewState是如何实现这些功能. 以名值对的方式来存控件的值,和Hashtable的结构类似: 跟踪那些ViewState中出现改变的值,以便对这些脏数据(dirty)进行进一步的处理: 通过序 ...
- Node.js——流的下载
https://cnodejs.org/topic/59d8f43b2543cb3368b1623e var request = require('request'); var fs = requir ...
- ERROR 1 (HY000): Can't create/write to file '/tmp/#sql_830_0.MYI' (Errcode: 13)
mysql操作时,出现报错. 执行describe 命令时, 临时文件目录没有创建或者无写入权限:于是: cd /var/lib/mysql/ #进入mysql数据目录 mkdir tmp #创建需要 ...
- Windows 8.1设置WIFI共享以及无法启动承载链接解决方案.
1.设置WIFI共享方法 2.无法启动承载链接解决方案 1.设置WIFI共享方法 Windows8 windows8.1笔记本wifi热点 wifi共享.快速将笔记本或者台式机的网络共享给手机,平板等 ...
- redis 可视化管理工具
Redis Desktop Manager 下载地址:http://redisdesktop.com/download 支持: Windows 7+, Mac OS X 10.10+, Ubuntu ...
- sql 语句的优化
sql语句的优化:在大多数情况下,为了更快的遍历表结构,优化器主要是根据定义的索引来提高性能.但是在不合理的SQL语句中,优化器会删去索引进而使用全表扫描, 一般而言,这种sql被称为劣质sql,所以 ...
- mysql字符集乱码问题
程序错误截图如下: 分析:我们mysql数据库没有设置默认编码, 导致创建的库字符集为 latin1,然而我们创建表的时候,指定字符集为其他的,比如utf8 我的解决思路:把数据库的编码修改为utf8 ...
- cocos2dx游戏如何架构
声明:此篇文章不介绍如何使用cocos2dx制作游戏.站在架构师的角度如果制作游戏. 以我多年的游戏开发经验,和其他技术积累, 市面的所谈的一些软件架构模式都不太适合游戏软件. 我指的架构模式,MVC ...
- [bzoj4816][Sdoi2017]数字表格 (反演+逆元)
(真不想做莫比乌斯了) 首先根据题意写出式子 ∏(i=1~n)∏(j=1~m)f[gcd(i,j)] 很明显的f可以预处理出来,解决 根据套路分析,我们可以先枚举gcd(i,j)==d ∏(d=1~n ...