传送门

题目别看错了,好像挺多人都读错了...

然后显然可以贪心,只有在需要用 $\text{magic crystals}$ 的时候才用

那么直接模拟即可

如果初始相邻两个突出的平台高度不连续那么我们显然可以直接从上面一步步操作到达下面的平台的上面一个位置

此时考虑如果我们直接操作,那么下面那个平台(设为 $x$)就会缩起来,然后就会掉到更下面的平台(设为 $y$)

如果当前和更下面的平台 $y$ 高度超过 $2$ 了,那么为了不摔死只能用一次 $\text{magic crystals}$

并且用在 $x$ 位置和用在 $x$ 下面一个位置(不是平台)都是一样的,那么直接用在 $x$ 位置就好了

如果和 $y$ 高度不超过 $2$ ,那么我们显然直接操作然后落到 $y$ 即可

这样一定是最优的,直接按着思路模拟,注意细节

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
typedef long long ll;
inline int read()
{
int x=,f=; char ch=getchar();
while(ch<''||ch>'') { if(ch=='-') f=-; ch=getchar(); }
while(ch>=''&&ch<='') { x=(x<<)+(x<<)+(ch^); ch=getchar(); }
return x*f;
}
const int N=2e5+;
int Q,n,m,a[N];
int main()
{
Q=read();
while(Q--)
{
n=read(),m=read();
for(int i=;i<=m;i++) a[i]=read();
int ans=;
for(int i=;i<=m;i++)
{
if(n<=a[i]) continue;
if(n!=a[i]+) n=a[i]+;
if(i<m)
{
if(a[i+]==a[i]-) n=a[i+];
else ans++,n=a[i];
continue;
}
if(n>) ans++;
break;
}
printf("%d\n",ans);
}
return ;
}

最新文章

  1. 10.Pattern 和 Matcher
  2. [emacs] 使用ggtags浏览代码
  3. jQuery触发a标签点击事件-为什么不跳转
  4. HDU 3466 Proud Merchants(01背包问题)
  5. MySQL重复数据
  6. jar文件签名
  7. 浏览器关闭使session失效的问题多种解决方式
  8. poj2192(搜索)
  9. 网格GridLayout建立
  10. [Twisted] 部署Twisted
  11. win7本地搭建git ssh服务器
  12. java里程碑之泛型--泛型注意的几点
  13. 机器学习03:K近邻算法
  14. day09 css
  15. vue_eHungry 饿了么
  16. 框架源码系列十二:Mybatis源码之手写Mybatis
  17. J2EE快速开发框架
  18. 【Codeforces 650 D】Zip-line
  19. web网页练习
  20. 三: 爬虫之selenium模块

热门文章

  1. 6.使用Feign实现声明式REST调用
  2. Java中boolean类型占用多少个字节?我说一个,面试官让我回家等通知
  3. Nginx之核心结构体ngx_cycle_t
  4. js怎么动态加载js文件(JavaScript性能优化篇)
  5. PHP环境搭建之单独安装
  6. 异步发送表单数据到JavaBean,并响应JSON文本返回
  7. 演示Java如何调用Mysql的过程和函数
  8. Oracle CDC (Change Data Capture)更新数据捕获——Asynchronous HotLog Mode(附带简单的kettle任务实现数据同步)
  9. 关于XMind软件文件格式的一些思考
  10. Python3的编译安装