洛谷 P5639 【CSGRound2】守序者的尊严

洛谷传送门

题目背景

由于Y校最近进行了对学校食堂的全面改革与对小卖部的全面整治(乱搞),导致学校小卖部卖的零食被禁售了;学校食堂的炸鸡窗口也消失了;

并且学校的学生处Q主任严禁学生点外卖,日夜监察。

都说民以食为天,由于整天挨饿,全校同学处于水深火热之中。

题目描述

zhouwc的朋友(朋友就是自己系列)小Z由于饥饿难忍,不得不铤而走险点外卖。

但是学校的Q主任为了能够抓住点外卖的学生布置了天罗地网——监控

但是由于学校给Q主任的经费有限,所以这些监控不能持续工作,工作一秒之后便要暂停休息一秒,即开启一秒后关闭一秒再开启一秒...以此类推。

还是由于Q主任的经费有限,这些监控被排成了一条直线,这条直线便在学生通往学生外卖驻点——二号门(没有门卫)的必经之路上。

因为小Z修习了疾跑技能,所以小Z通过任意个数关闭的监控的时间均为1(即一次行动可以经过若干个未开的监控)。

由于小Z想吃外卖又不想受到正在监控室看着监控的Q主任的处分,请你告诉他至少要多少时间才能安全到达外卖驻点。

输入格式

共2行

第一行一个正整数n,表示在这条路上一共有n个监控

第二行共有n个数。表示在第0秒是这些监控的开关情况,0表示监控关闭,1表示监控开启,并保证第一个监控一定是关闭的。

输出格式

共一行,表示小Z安全到达外卖驻点所需要的时间。

输入输出样例

输入 #1 复制

6

0 0 1 1 0 1

输出 #1 复制

4

输入 #2 复制

6

0 0 0 0 0 0

输出 #2 复制

1

说明/提示

数据范围:

对于10%10%的数据,1<=n<=101<=n<=10

对于30%30%的数据,1<=n<=1001<=n<=100

对于50%50%的数据,1<=n<=10001<=n<=1000

对于70%70%的数据,1<=n<=1000001<=n<=100000

对于100%100%的数据,1<=n<=10000001<=n<=1000000

监控的开关情况均用0和1来表示。

样例解释1:

小Z在第一秒时冲到第二个监控处,用时1秒,总用时1秒。

第二秒时,监控的开关状况变为了 1 1 0 0 1 0

这时,小Z迅速从二号监控处冲到了四号监控处,用时1秒,总用时2秒。

第三秒时,监控的开关状况变为了 0 0 1 1 0 1

这时,小Z迅速从四号监控处冲到了五号监控处,用时1秒,总用时3秒。

第三秒时,监控的开关状况变为了 1 1 0 0 1 0

这时,小Z迅速从五号监控处冲出了监控区域,用时1秒,总用时4秒。

样例解释2

小Z在第一秒直接冲出了监控区域

题解:

这题真的是一眼切。代码难度入门,思路难度普及-。

我们会发现,既然一秒钟可以穿过相当多的区域,而且每一秒的0,1状态是可以被取反的。所以最后就是要数一数0,1段有多少,也就是说,遍历整个串,如果当前的和上一个不一样,那么就加一,否则不变。因为一开始还会有一秒的状态,所以答案还要再加一。

代码:

#include<cstdio>
using namespace std;
const int maxn=1e6+10;
int n,ans;
int a[maxn];
char *p1,*p2,buf[100000];
#define nc() (p1==p2&&(p2=(p1=buf)+fread(buf,1,100000,stdin),p1==p2)?EOF:*p1++)
int read()
{
int x=0,f=1;
char ch=nc();
while(ch<48){if(ch=='-')f=-1;ch=nc();}
while(ch>47) x=(((x<<2)+x)<<1)+ch-48,ch=nc();
return x*f;
}
int main()
{
n=read();
for(int i=1;i<=n;i++)
{
a[i]=read();
if(a[i]!=a[i-1])
ans++;
}
printf("%d",ans+1);
return 0;
}

洛谷 P5639 【CSGRound2】守序者的尊严的更多相关文章

  1. 洛谷 P5639 【CSGRound2】守序者的尊严 题解

    原题链接 简要题意: 从 \(1\) 号位开始走,可以连续走过一段连续的 \(0\) ,每走一次,所有位置取反. (即 \(0 \gets 1\),\(1 \gets 0\)). 算法一 模拟暴力即可 ...

  2. 洛谷 P1115 最大子序和

    **原题链接** ##题目描述   给出一段序列,选出其中连续且非空的一段使得这段和最大.     **解法**:       1.暴力枚举 时间:O(n^3)       2.简单优化 时间:O(n ...

  3. 洛谷P4689 [Ynoi2016]这是我自己的发明(莫队,树的dfn序,map,容斥原理)

    洛谷题目传送门 具体思路看别的题解吧.这里只提两个可能对常数和代码长度有优化的处理方法. I 把一个询问拆成\(9\)个甚至\(16\)个莫队询问实在是有点珂怕. 发现询问的一边要么是一个区间,要么是 ...

  4. NOIP2017提高组Day1T3 逛公园 洛谷P3953 Tarjan 强连通缩点 SPFA 动态规划 最短路 拓扑序

    原文链接https://www.cnblogs.com/zhouzhendong/p/9258043.html 题目传送门 - 洛谷P3953 题目传送门 - Vijos P2030 题意 给定一个有 ...

  5. 洛谷P2982 [USACO10FEB]慢下来Slowing down(线段树 DFS序 区间增减 单点查询)

    To 洛谷.2982 慢下来Slowing down 题目描述 Every day each of Farmer John's N (1 <= N <= 100,000) cows con ...

  6. 洛谷P3703 [SDOI2017]树点涂色(LCT,dfn序,线段树,倍增LCA)

    洛谷题目传送门 闲话 这是所有LCT题目中的一个异类. 之所以认为是LCT题目,是因为本题思路的瓶颈就在于如何去维护同颜色的点的集合. 只不过做着做着,感觉后来的思路(dfn序,线段树,LCA)似乎要 ...

  7. 洛谷:P1087 FBI树 P1030 求先序排列 P1305 新二叉树

    至于为啥把这三个题放到一起,大概是因为洛谷的试炼场吧,三道树的水题,首先要理解 先序中序后序遍历方法. fbi树由于数量小,在递归每个区间时,暴力跑一遍区间里的数,看看是否有0和1.至于递归的方法,二 ...

  8. 如何求先序排列和后序排列——hihocoder1049+洛谷1030+HDU1710+POJ2255+UVA548【二叉树递归搜索】

    [已知先序.中序求后序排列]--字符串类型 #1049 : 后序遍历 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho在这一周遇到的问题便是:给出一棵二叉树的前序和 ...

  9. 【洛谷2982】[Usaco2010 Feb]慢下来Slowdown(dfs序+线段树)

    题目: 洛谷2982 分析: 这道题最重要的是想明白一点:牛\(i\)走到以后只对\(P_i\)的子树产生影响 知道这个以后,就可以想到在线维护每个牧场已经被"影响"了多少次(也就 ...

随机推荐

  1. Mybatis的PageHelper分页插件的PageInfo的属性参数,成员变量的解释,以及页面模板

    作者:个人微信公众号:程序猿的月光宝盒 //当前页 private int pageNum; //每页的数量 private int pageSize; //当前页的数量 private int si ...

  2. MySQL 8.0部分弃用的参数整理

    最近整理了一下MySQL 8.0的自动化安装,其中用到了一个MySQL 5.7版本的自定义配置文件,由于没有对(MySQL 8.0)做针对性修改,导致安装过程中出现了一些错误其中部分原因就是MySQL ...

  3. Docker系列03-容器Docker镜像的使用

    Docker镜像的使用前两个章节,介绍了容器的相关基础知识,这章我们介绍镜像的简单使用,镜像hub里面有来自于全世界贡献的各种镜像,包括一些入门和学习练手的镜像,今天我们使用的正式其中一个用于学习练习 ...

  4. 安装oracle11g服务端

    1.将oracle11g压缩包 解压到D盘根目录下 2.打开解压出来的文件夹,以管理员身份运行setup 3.警告弹框点击“是(Y)” 4.在此步骤中,可以提供您的电子邮件,以获取有关Oracle安全 ...

  5. ism 发布

    ism 发布 ism 发布 ism 发布

  6. Java中的BufferedImage类、Image类、Graphics类

    https://www.cnblogs.com/jpfss/p/11731812.html

  7. Java之IO初识(字节流和字符流)

    IO概述 生活中,你肯定经历过这样的场景.当你编辑一个文本文件,忘记了 ctrl+s ,可能文件就白白编辑了.当你电脑上插入一个U盘,可以把一个视频,拷贝到你的电脑硬盘里.那么数据都是在哪些设备上的呢 ...

  8. [译]Vulkan教程(05)Instance

    [译]Vulkan教程(05)Instance Creating an instance 创建一个instance The very first thing you need to do is ini ...

  9. ReactNative: 使用Touchable触摸类组件

    一.简介 在应用程序中,最灵魂的功能就是交互.通过给应用程序的组件添加事件来实现交互,进而提高用户体验.然而,ReactNative并不能像Web开发那样可以给大多数的标签元素绑定click事件,例如 ...

  10. CBrother脚本10分钟写一个拯救“小霸王服务器”的程序

    CBrother脚本语言10分钟写一个拯救“小霸王服务器”的程序 到了一家新公司,接手了一坨c++服务器代码,到处内存泄漏,这服务器没有数据库,挂了后重启一下就好了,公司就这么凑活着用了几年了,定时重 ...