news 2026/6/10 1:04:58

打卡信奥刷题(2755)用C++实现信奥题 P3718 [AHOI2017初中组] alter

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
打卡信奥刷题(2755)用C++实现信奥题 P3718 [AHOI2017初中组] alter

P3718 [AHOI2017初中组] alter

题目描述

nnn盏灯排成一列,其中有些灯开着,有些灯关着。小可可希望灯是错落有致的,他定义一列灯的状态的不优美度为这些灯中最长的连续的开着或关着的灯的个数。小可可最多可以按开关kkk次,每次操作可以使该盏灯的状态取反:原来开着的就关着,反之开着。现在给出这些灯的状态,求操作后最小的不优美度。

输入格式

第一行两个整数n,kn,kn,k

第二行是一个长度为nnn的字符串,其中有两种字符:NF。其中N表示该灯开着,F表示该灯关着。

输出格式

最小的不优美度。

输入输出样例 #1

输入 #1

8 1 NNNFFNNN

输出 #1

3

说明/提示

30%30\%30%的数据:1≤k≤n≤201\le k \le n\le201kn20

50%50\%50%的数据:1≤k≤n≤3001\le k \le n\le3001kn300

另有15%15\%15%的数据:1≤k≤n≤1051\le k \le n\le 10^51kn105,字符串为全N或全F

100%100\%100%的数据:1≤k≤n≤1051\le k \le n\le 10^51kn105

本题已经加入 hack 数据。

C++实现

#include<iostream>usingnamespacestd;intmain(){intn,k,p=0,g,t,ans;charc[2]={'F','N'};//灯的状态对应的字符string s;cin>>n>>k>>s;for(inti=0;i<n;i++)if(s[i]==c[i%2])p++;if(p<=k||n-p<=k){cout<<1;return0;}intlb=2,rb=n/k+1,mb;//准备二分while(lb<=rb){mb=(lb+rb)/2;//得出可能的不优美度g=0;for(inti=0,j=0,l=0;i<n;i++){if(s[j]==s[i])l++;elsej=i,l=1;if(mb<l)j=i+1,l=0,g++;}if(g<=k){rb=mb-1;}elselb=mb+1;//根据情况进行二分的分段}cout<<lb;//输出最小的不优美度return0;}

后续

接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/5 10:23:59

大模型应用算法求职指南:2024-2026年趋势与技能要求全解析

总结&#xff1a;大模型是2022年12月ChatGPT发布开始的&#xff0c;距今已经3年了。这3年对大模型应用算法的需求持续增长&#xff08;应该是目前各个公司需求最大的岗位&#xff0c;薪酬也给的非常不错&#xff0c;从50万-200万不等&#xff09;&#xff0c;这3年我正好参与这…

作者头像 李华
网站建设 2026/6/9 18:41:30

基于 8086 电子秒表计时器时钟控制系统设计

一、系统设计背景与核心目标 在体育训练、实验测量、日常作息管理等场景中&#xff0c;电子秒表、计时器与时钟的协同工作需求日益凸显。传统设备往往功能独立&#xff0c;操作繁琐且集成度低&#xff0c;难以满足高效便捷的使用需求。8086 微处理器凭借成熟的控制逻辑和丰富的…

作者头像 李华
网站建设 2026/6/5 16:03:03

单片机灭火避障小车设计

1 智能小车概述 1.1 国内外研究动态 智能小车方面&#xff1a;智能小车&#xff0c;也称轮式机器人&#xff0c;是一种以汽车电子为背景&#xff0c;涵盖控制、模式识别、传感技术、电子、电气、计算机、机械等多学科的科技创意性设计。智能汽车作为一种智能化的交通工具&…

作者头像 李华