YCKCOJ清明进阶专题题解

总的来说还是有难度的,这也能二分???
本套题需要大家尽量思考

A题 DARLING in the FRANXX
实际上这是一部好看的日漫,本题的背景主要以 叫龙 叫龙 叫龙为主,它是一种生物。。。好了言归正传,抓住核心题意: 02只想一次性清理掉某一级别的叫龙,所以不难发现最终我们环的排列方式一定是所有的A B C分别连成一块,例如AAAABBBBBCCCCC这样子。

对于环的问题,我们要固定一个点,这样子思维才不会被环的特殊性所迷惑(因为是环所以无法区分首尾),假设我们以1位置作为环的开头。

实际上最终02消灭叫龙的时候无外乎消除顺序是ABC的几种排列:
A B C ABC ABC
A C B ACB ACB
B A C BAC BAC
B C A BCA BCA
C A B CAB CAB
C B A CBA CBA
我们就按六种方式依次枚举,当然需要借助到一个快速统计的工具
以最终排列 A B C ABC ABC为例子,先统计一开始分别有 A , B , C A,B,C A,B,C种类的叫龙个数,如果以 A A A开头,那么由于环的性质,我们可以在开头摆放若干个 A A A叫龙,结尾摆放剩余叫龙,假如说 A A A叫龙一共有 a a a只,那么我们可以摆放0~a只叫龙在首,剩余在尾,这个可以枚举。然后摆放所有的 B B B叫龙与 C C C叫龙。但是我们需要知道一个数据: 把某种叫龙全部填在某个区间需要的引导次数 把某种叫龙全部填在某个区间需要的引导次数 把某种叫龙全部填在某个区间需要的引导次数
这个东西可以用前缀和实现,定义前缀和 A [ i ] A[i] A[i] 1 1 1 i i i位置内非 A 叫龙 A叫龙 A叫龙的个数,假如说我们现在要把 a a a A A A叫龙全部引导在一个长度为 a a a的区间 [ L , R ] [L,R] [L,R],那么求法就是 A [ R ] − A [ L − 1 ] A[R]-A[L-1] A[R]A[L1],直接计算区间内有多少个不是 A A A龙,然后引导即可,当然还要一种特殊的情况,那就是环,如果是环的话则是由开头一段+结尾一段来计算引导数,详情请看代码。

前缀和记录好以后,枚举第2个字母摆放位置,然后前缀和计算。
为什么枚举第2个字母的摆放位置呢?
实际上就是在考虑从首位置开始,摆放多少只第1个字母对应的叫龙,例如A叫龙一共a只,那么我可以在首位置开始摆放0~a只,那么第2个字母摆放的位置只能是1 ~ a+1

#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 50;
int A[maxn], B[maxn], C[maxn];
char s[maxn];
int num[3];
int main()
{std::ios::sync_with_stdio(false);int n;cin >> n;cin >> s + 1;int a = 0, b = 0, c = 0;for(int i = 1;i <= n;i++){if(s[i] != 'A') A[i] = A[i - 1] + 1;else A[i] = A[i - 1], a++;if(s[i] != 'B') B[i] = B[i - 1] + 1;else B[i] = B[i - 1], b++;if(s[i] != 'C') C[i] = C[i - 1] + 1;else C[i] = C[i - 1], c++;}int ans = 1e9;for(int i = 1;i <= c + 1;i++)//AB{int cost = A[i + a - 1] - A[i - 1] + B[i + a + b - 1] - B[i + a - 1];cost += C[i - 1] + C[n] - C[i + a + b - 1];ans = min(cost, ans);}for(int i = 1;i <= c + 1;i++)//BA{int cost = B[i + b - 1] - B[i - 1] + A[i + a + b - 1] - A[i + b - 1];cost += C[i - 1] + C[n] - C[i + a + b - 1];ans = min(cost, ans);}for(int i = 1;i <= b + 1;i++)//AC{int cost = A[i + a - 1] - A[i - 1] + C[i + a + c - 1] - C[i + a - 1];cost += B[i - 1] + B[n] - B[i + c + a - 1];ans = min(cost, ans);}for(int i = 1;i <= b + 1;i++)//CA{int cost = C[i + c - 1] - C[i - 1] + A[i + c + a - 1] - A[i + c - 1];cost += B[i - 1] + B[n] - B[i + c + a - 1];ans = min(cost, ans);}for(int i = 1;i <= a + 1;i++)//BC{int cost = B[i + b - 1] - B[i - 1] + C[i + c + b - 1] - C[i + b - 1];cost += A[i - 1] + A[n] - A[i + c + b - 1];ans = min(cost, ans);}for(int i = 1;i <= a + 1;i++)//CB{int cost = C[i + c - 1] - C[i - 1] + B[i + c + b - 1] - B[i + c - 1];cost += A[i - 1] + A[n] - A[i + c + b - 1];ans = min(cost, ans);}cout << ans << endl;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/795688.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【SCI绘图】【曲线图系列1 python】绘制扫描点平滑曲线图

SCI&#xff0c;CCF&#xff0c;EI及核心期刊绘图宝典&#xff0c;爆款持续更新&#xff0c;助力科研&#xff01; 本期分享&#xff1a; 【SCI绘图】【曲线图1 python】绘制扫描点平滑曲线图 1.环境准备 python 3 import numpy as np import pandas as pd import proplot …

计算机英文

多取自各个语言和框架的基本库文件 英文含义其他compile编译decorator修饰comma段落、 逗号colon冒号operand操作数kernel内核invalid无效的combination组合opcode操作码boot引导record记录workflow工作流程row行column列简写colobject对象简写objtemp缓存常用于中间变量param…

一点点安全资料:网络安全扩展

协议扩展 加密协议SSL/TLS 简介 SSL&#xff08;Secure Sockets Layer&#xff09;和TLS&#xff08;Transport Layer Security&#xff09;是加密协议&#xff0c;设计用来提供网络通信的安全性和数据完整性。尽管TLS是SSL的后继者&#xff0c;但两者的核心目标相同&#x…

hibernate检索方式

hibernate检索方式 检索方式即为查询对象的方式 hibernate提供了几种检索对象的方式 导航对象图检索方式 &#xff1a;使用已加载的对象get获取关联对象 OID检索方式 &#xff1a;使用OID来获取对象get()和load()方法 HQL检索方式&#xff1a;使用面向对象的HQL(Hibernate Quer…

计算机视觉基础入门指南

前言 计算机视觉是一门研究如何使计算机能够“看”和理解图像或视频的学科。随着人工智能的快速发展&#xff0c;计算机视觉在各个领域的应用越来越广泛。本文将为您介绍计算机视觉的基本概念、应用领域以及学习路径&#xff0c;帮助您快速入门这一领域。 一、计算机视觉的基本…

win10上一个详细的Django开发入门例子

1.Django概述 Django是一个开放源代码的Web应用框架&#xff0c;由Python写成。采用了MTV的框架模式&#xff0c;即模型M&#xff0c;视图V和模版T。 Django 框架的核心组件有&#xff1a; 用于创建模型的对象关系映射&#xff1b; 为最终用户设计较好的管理界面&#xff1b…

蓝桥杯每日一练

【问题描述】 小蓝制作了 n 个工件&#xff0c;每个工件用一个由小写英文字母组成的&#xff0c;长度为 2 的字符串表示&#xff0c;第 i 个工件表示为 si 。小蓝想把 n 个工件拼接到一起&#xff0c;方便转 移到另一个地方完成下一道工序&#xff0c;而拼接后的工件用字符串 S…

谷歌(Google)历年编程真题——数组和字符串(加一)

Google 希望了解你的编码技能和专业技术知识&#xff0c;包括工具、编程语言&#xff0c;以及关于数据结构和算法等主题的一般知识。讨论过程中通常会反复提到相关的话题&#xff0c;就像在工作中的讨论那样&#xff0c;从而推动彼此思考并学习不同的方法。无论你的工作经验如何…

使用Arcpy进行数据批处理-批量裁剪

时空大数据使我们面临前所未有的机遇和挑战&#xff0c;尤其在地学、遥感或空间技术等专业领域&#xff0c;无疑是一个全新的时代。 伴随着时空大数据的到来&#xff0c;海量数据的处理是一个所有科研工作者都无法忽视的重要问题。传统的数据&#xff08;主要指空间数据&#x…

Docker实战教程 第1章 Linux快速入门

2-1 Linux介绍 为什么要学Linux 三个不得不学习 课程需要&#xff1a;Docker开发最好在Linux环境下。 开发需要&#xff1a;作为一个后端程序员&#xff0c;是必须要掌握Linux的&#xff0c;这是找工作的基础门槛。 运维需要&#xff1a;在服务器端&#xff0c;主流的大型服…

SDWebImage源码解析---疑难问题解答

SDWebImage的简单流程图&#xff1a; 上图大致流程是对的&#xff0c;有几个没写到的地方&#xff1a; 首先判断url的类型是不是URL类型或string类型&#xff0c;判断url是否为nil占位图更早一些&#xff0c;在url判断后&#xff0c;就行显示占位图加载沙盒中对应的图片后&…

Premiere Pro 2024:赋予创意翅膀,让你的视频飞翔 mac/win版

Premiere Pro 2024&#xff0c;作为Adobe旗下的旗舰视频编辑软件&#xff0c;自推出以来&#xff0c;一直在视频制作领域占据着重要的地位。随着技术的不断进步和创新&#xff0c;Premiere Pro 2024为用户带来了前所未有的编辑体验&#xff0c;重新定义了视频制作的标准。 Pre…

Marketo营销自动化集成Zoho CRM

Marketo 本身是一种营销自动化工具&#xff0c;可让您根据指定的标准对潜在客户进行评分&#xff0c;并确定哪些潜在客户最有可能进行转化。 CRM 和 Marketo 之间的紧密集成可帮助您规划销售和营销活动&#xff0c;以培育这些高价值潜在客户并最大限度地提高您的团队可以赢得的…

【案例】--“超大容量”存储思考

目录 一、前言二、GridFS三、利用GridFS实现“超大容量的二进制流”的存储一、前言 案例背景: 最近项目遇到一个问题,用户在创作时,有文件流、图片、超链接、文本等信息产生,而这些信息的容量高达几十M【超大容量的信息】。由于历史技术方案局限性,将超大容量的信息存入m…

数字逻辑分析仪初体验

为啥会用到这玩意儿&#xff0c;要从一个荒诞的需求开始。想在市面上找一款特别低空飞行的监控&#xff0c;而且不想它一直开着监控&#xff0c;最好是我在外面远程指挥它起飞&#xff0c;飞去厨房&#xff0c;飞去洗手间&#xff0c;甚至飞去阳台&#xff0c;查看水龙头情况啊…

Nuxt 项目的创建

中文文档&#xff1a;https://nuxt.com.cn/docs/getting-started/installation#%E6%96%B0%E9%A1%B9%E7%9B%AE Nuxt 项目创建的先决条件&#xff1a; Node.js 版本 18.0.0 及以上文本编辑器&#xff1a;VS Code Volar 插件 或 Webstorm 执行如下命令&#xff0c;创建 Nuxt 项目…

【Canvas技法】用椭圆绘制经纬线

【图示】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>用椭圆绘制经纬线</title><style type"text/css"…

每日一题 第七十四期 洛谷 [HNOI2003] 激光炸弹

[HNOI2003] 激光炸弹 题目描述 一种新型的激光炸弹&#xff0c;可以摧毁一个边长为 m m m 的正方形内的所有目标。现在地图上有 n n n 个目标&#xff0c;用整数 x i x_i xi​ , y i y_i yi​ 表示目标在地图上的位置&#xff0c;每个目标都有一个价值 v i v_i vi​。激…

相对论中关于光速不变理解的补充

近几个月在物理直播间聊爱因斯坦相对论&#xff0c;发现好多人在理解爱因斯坦相对论关于基本假设&#xff0c;普遍认为光速是不变的&#xff0c;质能方程 中光速的光速不变的&#xff0c;在这里我对这个假设需要做一个补充&#xff0c;他是基于质能方程将光速C 在真是光速变化曲…

Allavsoft for Mac v3.27.0.8852注册激活版 优秀的视频下载工具

Allavsoft for Mac是一款功能强大的多媒体下载和转换工具&#xff0c;支持从各种在线视频网站和流媒体服务下载视频、音频和图片。它具备批量下载和转换功能&#xff0c;可将文件转换为多种格式&#xff0c;以适应不同设备的播放需求。此外&#xff0c;Allavsoft还提供视频编辑…