当前位置: 首页 > news >正文

CSP/信奥赛C++刷题训练:经典前缀和例题(4):洛谷P3662:Why Did the Cow Cross the Road II S

CSP/信奥赛C++刷题训练:经典前缀和例题(4)

[USACO17FEB] Why Did the Cow Cross the Road II S

在这里插入图片描述

题目描述

The long road through Farmer John’s farm has N N N crosswalks across it, conveniently numbered 1 … N 1 \ldots N 1N ( 1 ≤ N ≤ 100 , 000 1 \leq N \leq 100,000 1N100,000). To allow cows to cross at these crosswalks, FJ installs electric crossing signals, which light up with a green cow icon when it is ok for the cow to cross, and red otherwise. Unfortunately, a large electrical storm has damaged some of his signals. Given a list of the damaged signals, please compute the minimum number of signals that FJ needs to repair in order for there to exist some contiguous block of at least K K K working signals.

共有N个信号灯,编号为1~N,有B个信号灯损坏,给你它们的编号。

问,最少修好几个信号灯,可以有K个编号连续的信号灯。

输入格式

The first line of input contains N N N, K K K, and B B B ( 1 ≤ B , K ≤ N 1 \leq B, K \leq N 1B,KN). The next B B B lines each describe the ID number of a broken signal

输出格式

Please compute the minimum number of signals that need to be repaired in order for there to be a contiguous block of K K K working signals somewhere along the road.

样例 #1

样例输入 #1

10 6 5
2
10
1
5
9

样例输出 #1

1

使用前缀和解题

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int n,k,b,x,ans=N; 
int vis[N];//标记坏灯:1表示灯坏、0表示没坏 
int sum[N];//前缀和 
int main(){cin>>n>>k>>b;for(int i=1;i<=b;i++){cin>>x;vis[x]=1;}for(int i=1;i<=n;i++){sum[i]=sum[i-1]+vis[i];//坏灯前缀和 }for(int i=1;i<=n-k+1;i++){//枚举以i开头,长度为k的所有区间 ans=min(ans,sum[i+k-1]-sum[i-1]);}cout<<ans;return 0;
}

文末彩蛋:

点击王老师青少年编程主页有更多精彩内容


http://www.mrgr.cn/news/61772.html

相关文章:

  • C++(友元、异常机制)
  • 华为OD机试真题---狼羊过河
  • 【Linux内核揭秘】深入理解命令行参数和环境变量
  • 详细指南:解决Garmin 手表无法与电脑连接的问题
  • 两个壁面之间夹一个圆柱形杆的温度分布
  • 后台管理系统的通用权限解决方案(二)SpringBoot整合Swagger Springfox实现接口日志文档
  • 技术星河中的璀璨灯塔 —— 青云交的非凡成长之路
  • 2024网鼎杯青龙组Web+Misc部分WP
  • 群控系统服务端开发模式-应用开发-业务架构逻辑开发Base开发总结
  • 【测试】——接口测试入门
  • 双十一狂欢节有哪些数码好物值得入手,盘点五款入手不亏的好物!
  • 从0开始搭建一个生产级SpringBoot2.0.X项目(二)SpringBoot应用连接数据库集成mybatis-plus
  • 计算结构力学:多自由度振动系统
  • 研究线性模型训练中损失变化的规律和最优学习率的影响
  • 2024 Rust现代实用教程:1.3获取rust的库国内源以及windows下的操作
  • Infinity-MM数据集:一个包含 4000 万个样本的开源视觉语言模型的大规模多模态指令数据集。
  • 【征程 6 工具链性能分析与优化-1】编译器预估 perf 解读与性能分析
  • 矩阵压缩格式转换:COO转换CSC(C++)
  • Python世界:自动化办公Word之批量替换文本生成副本
  • nginx[新手用][模块化][高效]配置
  • 使用命令行上传 ipa 到 App Store(iTMSTransporter 3.3)
  • [JAVAEE] 面试题(二) - CAS 和 原子类
  • 计算机组成原理之高级语言程序与机器级代码之间的对应、高级语言和机器级代码的具体示例
  • 优化云成本,打造卓越体验,他们有话说
  • 微信小程序 - 获取汉字拼音首字母(汉字英文首字母)根据汉字查拼音,实现汉字拼音首字母获取,在小程序上实现汉字的拼音提取首字母!
  • [专有网络VPC]管理VPC配额