题目链接 在这 ————> here

题意大致是有n列石柱,每一列石柱都是由高度为一的石块组成,一个人要从第一根到第n根,他有一个口袋,可以装下无限的石块,他可以在一个石柱上任意取石块,只要这个石柱高度>=1,每一根有一个高度,如果两根石柱的高度差 |hi−hi+1|≤k, 那么那就可以走过去,若果高度不够,如果口袋里有石块,他就可以拿出来放到当前石柱上。最后如果能到第n个石柱,就输出YES,否则输出NO。

思路: 一开始想的就是贪心。一直维持 第 i 根柱子的高度 ,是 第 i+1根柱子的高度 - k,但是 然后就可以尽量多的从第 i根柱子上拿石块,以备后边需要,但是要注意的是第 i 根柱子的高度要取个max,即 hi = max(0,hi+1 - k)。

昨天这题一直卡第二组,感觉没问题啊,当时 读错了题意,

如果色谱柱上至少有一个块,则从第i列顶部取下一个块并将其放入袋中;

上述文字的意思是高度>=0,我误解成高度最小为1,然后  hi = max(1,hi+1 - k)。今天改成0就立马AC。

怎么说,读题要知道这个题目的几个关键点才行。这方面还有很大的不足。

AC Code:

#include<bits/stdc++.h>
#define LL long long
#define ULL  unsigned  long long
#define maxn (LL)1e5
#define INF 0x3f3f3f3f
#define inf 0x7fffffff
#define PI  acos(-1.0)
#define pb push_back
#define re register
const double eps = 0.0000001;
using namespace std;
typedef pair<LL,LL> pii;
inline LL sgn(double x) {return (x > eps) - (x < -eps);
}
LL ans[200];   LL n,m,k;LL T;
int  main()
{ios::sync_with_stdio(false);#ifndef ONLINE_JUDGEfreopen("input.txt","r",stdin);// freopen("outl.txt","r",stdin);#endif // ONLINE_JUDEcin>>T;while(T--){cin>>n>>m>>k;bool r = 1;for(int i = 1;i<=n;++i){cin>>ans[i];}if(n == 1) {cout<<"YES"<<endl;continue;}for(int i = 1;i<n;++i){if(ans[i]>=ans[i+1])//可以任意取{LL a = ans[i];ans[i] = max(0LL,ans[i+1]-k);m += a - ans[i];}else if(ans[i+1]- ans[i]<=k){//高度差在k内,尽量维持k个高度差LL a = ans[i];ans[i] = max(0LL,ans[i+1]-k);//记住取个maxm += a - ans[i];}else if(ans[i+1] - ans[i]>k){if(ans[i+1] - (ans[i]+m)<=k)  m -= (ans[i+1] - ans[i] - k);else {r = 0;break;}}}if(r == 1) cout<<"YES"<<endl;else   cout<<"NO"<<endl;}}

dalao 的思路与代码总是那么神奇

#include<bits/stdc++.h>
using namespace std;
int T,n,m,k,a,h;
bool b;
int main(){scanf("%d",&T);while(T--){b=true;scanf("%d%d%d%d",&n,&m,&k,&h);while(--n){a=h;scanf("%d",&h);if(a-max(0,h-k)+m < 0 ) {b=false;}m+=a-max(0,h-k);}puts(b?"YES":"NO");}
}

B. Block Adventure(贪心)相关推荐

  1. CF 626C [Block Towers] 贪心

    题目链接:http://codeforces.com/problemset/problem/626/C 题目大意: 有n个人用高度为2的砖往上搭,有m个人用高度为3的砖往上搭.每个人可用的砖块数是无限 ...

  2. UVA12707 Block Meh 贪心

    题意:给你n个区间,每个区间权值为1,在如下规则下求权值和:若一个区间能完全被另一个区间覆盖(端点不重合),则这个区间的权值不计入总和. 题解:我们首先讲端点对按照右端点优先升序排列,右端点相同,按左 ...

  3. Codeforces Round #578 (Div. 2)

    Solution A. Hotelier 题意: 对应\(n\)个位置,如果是\(L\),左边第一个为\(0\)的位置变为\(1\),如果是\(R\),右边第一个为\(0\)的位置变为\(1\),如果 ...

  4. Codeforces Round #578 (Div. 2) 题解报告

    A. Hotelier sb模拟,直接按题意模拟就可以了. B. Block Adventure Gildong is playing a video game called Block Advent ...

  5. 2016区域赛前冲刺训练

    UPD 2016.10.23 shift-and (2题) Codeforces 训练 现在已经完成了: 191 [Codeforces Round #377] (6/6) Div 2 A Buy a ...

  6. [总结]2019年9月 OI学习/刷题记录

    从现在开始记录一下每天的学习情况.主力LOJ? 2019/9/5 LibreOJ #2543. 「JXOI2018」排序问题 答案显然是\(\frac{(n+m)!}{Cnt_1!Cnt_2!\cdo ...

  7. HCIE-Cloud笔试

    前言: 目录按照HCIE-Cloud官方培训教材V2.0进行制定,通过笔试考点挂钩HCIE-Cloud官方培训教材V2.0中的知识,相互强化记忆 1.优点:基本笔试的知识分类,是按照该教材的目录大纲分 ...

  8. Objective-C中的block块语法

    #import <Foundation/Foundation.h>/*OC不同于Java C++ 它没有字符串对象 只有NS对象NS就是乔布斯第一个公司NeXt的类集合 被收购之后才有了C ...

  9. Solve The Maze CodeForces - 1365D(贪心+dfs)

    Vivek has encountered a problem. He has a maze that can be represented as an n×m grid. Each of the g ...

最新文章

  1. android jni 调用 java_Android与JNI(二) ---- Java调用C++ 动态调用
  2. 车联网APP,安全设施薄弱的山寨品
  3. insert在python中的用法_python中insert用法是什么_后端开发
  4. ArrayPool 源码解读之 byte[] 也能池化?
  5. linux 15秒 搭建VSFTPD文件服务器
  6. html拖拽吸附插件,前端拖拽插件gridster.js
  7. aspnet 后台调用前台js函数
  8. C++设计模式--观察员
  9. android9.0 uri,Android9.0源码学习 - Launcher Activity(一)
  10. javapythonc就业人数比例_P100 统计各年龄段的人数
  11. ffmpeg 用 -ss指定起始时间
  12. 千万别用MongoDB?
  13. 访问服务器本地端口/网址
  14. MINIO(一)简介
  15. Linux 常用命令 一顿操作猛如虎
  16. 细粒度 文档图像版面分析
  17. 基于python管理系统论文_基于Python语言的实验室管理系统的设计与实现
  18. 省市区三级级联JSON解析打印各级key及value
  19. 【计算机科学基础】计算理论基础
  20. Android-PullToRefresh代码分析

热门文章

  1. 下载xcode 10
  2. 计算机主机的拆卸的注意事项,如何进行电脑主机除尘及板卡维护
  3. POSTER: A PU Learning based System for Potential Malicious URL Detection
  4. 廖雪峰Python教程 实战day05
  5. 风再起时?风继续吹........
  6. 重新排序(差分,贪心,排序不等式)
  7. 编译原理LR(1)语法分析器 C++实现
  8. 本地blast与nr/nt库
  9. Revit二次开发-创建IURibbon中使用相对地址
  10. word2vec产生的词向量中出现空格和回车,会导致ValueError: invalid vector on line3 (is this really the text format)