打卡信奥刷题(626)用Scratch图形化工具信奥B3701[普及组/提高组] [语言月赛202301] 避雷针Bones G

[语言月赛202301] 避雷针

题目描述

n n n 个避雷针从左至右排成一排,我们将它们从左至右依次标号为 1 ∼ n 1 \sim n 1n

现在有 m m m 道雷依次劈下。你得知了一串序列 a 1 , ⋯   , a m a _ 1, \cdots, a _ m a1,,am。对于第 i i i 道雷,其劈中了 a i − 2 a _ i - 2 ai2(如果存在)、 a i − 1 a _ i - 1 ai1(如果存在)、 a i a _ i ai a i + 1 a _ i + 1 ai+1(如果存在)、 a i + 2 a _ i + 2 ai+2(如果存在)号避雷针。

m m m 道雷劈完后,你想要知道,被劈过至少一次的避雷针有几个。

输入格式

输入共两行。

第一行为两个整数 n , m n, m n,m,代表避雷针数量和雷的数量。

第二行为 m m m 个整数 a 1 , ⋯   , a m a _ 1, \cdots, a _ m a1,,am,代表题面中的序列。

输出格式

输出共一行。

输出一行一个整数,被劈过至少一次的避雷针的数量。

样例 #1

样例输入 #1

17 1
4

样例输出 #1

5

样例 #2

样例输入 #2

10 1
2

样例输出 #2

4

样例 #3

样例输入 #3

9 3
3 7 7

样例输出 #3

9

提示

样例 1 解释

被劈中的避雷针是 2 , 3 , 4 , 5 , 6 2, 3, 4, 5, 6 2,3,4,5,6 号,共 5 5 5 个。

样例 2 解释

被劈中的避雷针是 1 , 2 , 3 , 4 1, 2, 3, 4 1,2,3,4 号,共 4 4 4 个。请注意 a 1 − 2 = 0 a _ 1 - 2 = 0 a12=0 号避雷针不存在,也不应被劈中。

样例 3 解释

被劈中的避雷针是 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 1, 2, 3, 4, 5, 6, 7, 8, 9 1,2,3,4,5,6,7,8,9 号,共 9 9 9 个。

请注意尽管部分避雷针被劈了两次甚至三次,对这些避雷针我们仍然只计数一次。

数据规模与约定

  • 对于前 10 % 10\% 10% 的数据,保证 n = 1 n = 1 n=1
  • 对于前 30 % 30\% 30% 的数据,保证 m = 1 m = 1 m=1
  • 对于另外 20 % 20\% 20% 的数据,保证 m ≤ n − 2 m \leq n - 2 mn2 ∀ i ∈ [ 1 , m ] , a i = i \forall i \in [1, m], a _ i = i i[1,m],ai=i
  • 对于 100 % 100\% 100% 的数据,保证 1 ≤ n , m ≤ 1 0 6 1 \leq n,m \leq 10 ^ 6 1n,m106 1 ≤ a i ≤ n 1 \leq a _ i \leq n 1ain

Scratch实现

在这里插入图片描述

后续

接下来我会不断用scratch来实现信奥比赛中的算法题、Scratch考级编程题实现、白名单赛事考题实现,感兴趣的请关注,我后续将继续分享相关内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值