题目大意:

有一个墙,高度为h,在每一个高度处都有一个踏板,有的踏板是隐藏着的,有的是伸出来的,小人站在h高度处(题目保证h高度处的踏板一定是伸出来的),这个小人每站到一个踏板上,就可以点一个开关,将他所在的踏板收回,并将下一个高度上的踏板改变状态。小人只能最多落下两层楼,如果从高度为x处落到高度为x-3处那就会摔的稀碎,当然你肯定不想让他摔死是不是,要是不想摔死就充钱!每充一块钱就能指定一个踏板并改变他的状态。现在问你最少充多少钱能不让小人摔死。

做法:贪心,从第一个挡板开始往下跳,如果下面一直没有挡板,那就一直往下跳,直到跳到有挡板的位置,我们先停在他的上一个高度处,所以现在的状态是,小人处于x高度处,x-1高度处有挡板,那么我们讨论x-2高度处有没有挡板:

1.如果x-2高度处有挡板,那么我们在x处按动开关,x和x-1高度处的挡板都收起,小人恰好落在x-2高度处的挡板,此时站在x-2高度处要考虑的问题又和站在x-1高度处要考虑的问题一样了

2.如果x-2高度处没有挡板,那很显然x和x-1处的挡板收起后小人就嗝屁了,所以我们冲一块钱,让x-1高度处的挡板收起来,然后再按动开关的时候x-1高度处的挡板恰好伸出,小人正好落上去,接下来的操作仍然相同。

综上所述,问题的焦点就在于x-1处挡板下面的那个挡板是和它紧挨着还是隔着一些高度。如果紧挨着就跳过这个问题,否则就冲一块钱。是不是很简单啊,老子想秃噜了头皮也没想出来,最后还是看了老外的代码,&#*%^&_*,果然年纪大了不中用了。

#include<iostream>
#include<cstdio>
#define maxn 200010
using namespace std;
int a[maxn],n,h,T;
int main(){
scanf("%d",&T);
while(T--){
int ans=;
scanf("%d%d",&h,&n);
for(int i=;i<=n;i++)scanf("%d",&a[i]);
a[++n]=;
for(int i=;i<=n;i++){
if(a[i]-a[i+]>)ans++;
else i++;
}
printf("%d\n",ans);
}
return ;
}

CF-1238 C.Standard Free2play的更多相关文章

  1. Educational Codeforces Round 74 (Rated for Div. 2) C. Standard Free2play

    链接: https://codeforces.com/contest/1238/problem/C 题意: You are playing a game where your character sh ...

  2. C. Standard Free2play --div

    https://codeforces.com/contest/1238/problem/C 题意:下台阶的时候只有一种方式,拉动当前台阶x的 level,然后当前的台阶关闭,调到下边的台阶x-1,如果 ...

  3. Codeforces 1238C. Standard Free2play

    传送门 题目别看错了,好像挺多人都读错了... 然后显然可以贪心,只有在需要用 $\text{magic crystals}$ 的时候才用 那么直接模拟即可 如果初始相邻两个突出的平台高度不连续那么我 ...

  4. Educational Codeforces Round 74

    目录 Contest Info Solutions A. Prime Subtraction B. Kill 'Em All C. Standard Free2play D. AB-string E. ...

  5. Educational Codeforces Round 74 (Rated for Div. 2)

    传送门 A. Prime Subtraction 判断一下是否相差为\(1\)即可. B. Kill 'Em All 随便搞搞. C. Standard Free2play 题意: 现在有一个高度为\ ...

  6. Educational Codeforces Round 74 (Rated for Div. 2)【A,B,C【贪心】,D【正难则反的思想】】

    A. Prime Subtractiontime limit per test2 secondsmemory limit per test256 megabytesinputstandard inpu ...

  7. Educational Codeforces Round 74 (Rated for Div. 2)补题

    慢慢来. 题目册 题目 A B C D E F G 状态 √ √ √ √ × ∅ ∅ //√,×,∅ 想法 A. Prime Subtraction res tp A 题意:给定\(x,y(x> ...

  8. cf之路,1,Codeforces Round #345 (Div. 2)

     cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅.....   ...

  9. CF memsql Start[c]UP 2.0 A

    CF memsql Start[c]UP 2.0 A A. Golden System time limit per test 1 second memory limit per test 256 m ...

随机推荐

  1. 一文学会 TypeScript 的 82% 常用知识点(上)

    前端专栏 2019-11-22 19:17:55 对于前端从业者来说,TypeScript(以下简称 TS)已经不算是新技术. Vue3 的源码基于 TS 编写, Angular 项目默认支持 TS ...

  2. python接口自动化9-ddt数据驱动

    前言 ddt:数据驱动,说的简单一点,就是多组测试数据,比如点点点的时候登录输入正常.异常的数据进行登录. 实际项目中,自动化测试用得很少,但也有人用excel来维护测试数据 一.ddt 1.安装:p ...

  3. Thymeleaf入门与基础语法

    1.简介 Thymeleaf是用来开发Web和独立环境项目的现代服务器端Java模板引擎. Thymeleaf的主要目标是为您的开发工作流程带来优雅的自然模板 - HTML.可以在直接浏览器中正确显示 ...

  4. IT兄弟连 HTML5教程 HTML文档头部元素head

    HTML头部标记是<head>,主要包括页面的一些基本描述语句,以及CSS和JavaScript,一般都可以定义在头部元素中.它用于包含当前文档的有关信息,例如网页标题和关键字等.通常位于 ...

  5. 基于python的selenium常用操作方法(2)

    9 多表单切换 在Web应用中经常会遇到frame/iframe表单嵌套页面的应用,WebDriver只能在一个页面上对元素识别与定位,对于frame/iframe表单内嵌页面上的元素无法直接定位.这 ...

  6. Fusionstorage的逻辑架构

    Fusionstorage Fusionstorage的逻辑架构 Mdc:元数据控制,实现对分布式集群的状态控制,以及控制数据分布式规则,数据重建规则等,mdc默认部署在3个节点的zk盘上,形成mdc ...

  7. python执行shell实时输出

    1.使用readline可以实现 import subprocess def run_shell(shell): cmd = subprocess.Popen(shell, stdin=subproc ...

  8. 【数字图像分析】基于Python实现 Canny Edge Detection(Canny 边缘检测算法)

    Canny 边缘检测算法 Steps: 高斯滤波平滑 计算梯度大小和方向 非极大值抑制 双阈值检测和连接 代码结构: Canny Edge Detection | Gaussian_Smoothing ...

  9. 骚操作!曾经爱过!用 Python 清理收藏夹里已失效的网站

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 小詹&有乔木 PS:如有需要Python学习资料的小伙伴可 ...

  10. PlayJava Day007

    今日所学: /* 2019.08.19开始学习,此为补档. */ 1.String类 实例化:①String name1 = "张三" ; ②String name2 = new ...