D. Say No to Palindromes(构造 + 前缀和)

news2025/1/11 14:21:16

Problem - 1555D - Codeforces

 

如果这个字符串不包含一个长度至少为2的子串,我们就称它为美丽的字符串,这是一个回文。回顾一下,回文是指从第一个字符到最后一个字符以及从最后一个字符到第一个字符的读法相同的字符串。例如,字符串a, bab, acca, bcabcbacb是回文,但字符串ab, abbbaa, cccb不是。

让我们把字符串的成本定义为:如果在一次操作中允许将字符串的任何一个字符改为拉丁字母表的前三个字母之一(小写),那么该字符串变得漂亮的最小操作数。

给你一个长度为n的字符串s,字符串的每个字符都是拉丁字母表的前3个字母之一(小写)。

你必须回答m个查询--计算从第li-th到ri-th位置的字符串s的子串的成本,包括在内。

输入
第一行包含两个整数n和m(1≤n,m≤2⋅105)--字符串s的长度和查询次数。

第二行包含字符串s,它由n个字符组成,每个字符是前3个拉丁字母之一。

接下来的m行包含两个整数li和ri(1≤li≤ri≤n)--第i个查询的参数。

输出
对于每个查询,打印一个整数--从li-th到ri-th位置的字符串s的子串的费用,包括在内。

例子
inputCopy
5 4
baacb
1 3
1 5
4 5
2 3
输出拷贝
1
2
0
1
注意
考虑一下测试示例中的查询。

在第一个查询中,子串是baa,可以通过一次操作改变为bac。
在第二个查询中,子串是baacb,可以通过两次操作改变为cbacb。
在第三个查询中,子串是cb,可以不做任何改变。
在第四个查询中,子串是aa,可以通过一次操作变为ba。

题解:
题中说不能出现长度大于等于2的回文串,且串只由三个字母abc组成

满足条件的串应该是abcabc这种形式的否则无论如何都无法成立

类似这种形式的有

abcabc

acbacb

bacbac

bcabca

cabcab

cbacba

所以我们用前缀和预处理出来s串由这6种方式构成,各需要多少代价

询问时找最小输出即可

#include<iostream>
#include<algorithm>
#include<string>
#include<queue>
#include<vector>
#include<map>
#include<cstring>
#include<cmath>
using namespace std;
#define int long long
char s[6][5] = {"abc","acb","bac","bca","cab","cba"};
int f[200050][6];
void solve()
{
	int n,m;
	cin >> n>> m;
	string ss;
	cin >> ss;
	ss = " "+ ss;
	for(int i = 1;i <= n;i++)
	{
		int k = (i-1)%3;
		for(int j = 0;j < 6;j++)
		{
			f[i][j] = f[i-1][j] + (ss[i] != s[j][k]); 
		}
	}
	while(m--)
	{
		int l,r;
		cin >> l >> r;
		int mi = 1e9;
		for(int i = 0;i < 6;i++)
		{
			mi = min(mi,f[r][i] - f[l-1][i]);
			
		}
		cout<<mi<<"\n";
	}
}
//aaaa
//bacb
signed main()
{
//	ios::sync_with_stdio(false);
//	cin.tie(0);
//	cout.tie(0);
	int t = 1;
//	cin >> t;
    while(t--)
	{
		solve();
	} 
}
//10

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

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

相关文章

京东物流 × StarRocks : 打造服务分析一体化平台Udata

作者&#xff1a;张栋&#xff0c;京东物流集团数据专家 京东集团 2007 年开始自建物流&#xff0c;2017 年 4 月正式成立京东物流集团&#xff0c;2021 年 5 月&#xff0c;京东物流于香港联交所主板上市。京东物流是中国领先的技术驱动的供应链解决方案及物流服务商&#xff…

Linux内核

内核属于操作系统的核心部分&#xff0c;它具有操作系统基本的功能&#xff0c;主要负责管理系统的内存、进程、设备驱动程序、文件系统和网络接口&#xff0c;因此&#xff0c;操作系统的性能和稳定性由内核决定。 1、内存管理 进程对内存的使用 计算机中所有要执行的程序都必…

大厂10年经验,我对Java高并发问题方案的总结,堪称教科书级

作为一个 Java 开发人员&#xff0c;多线程是一个逃不掉的话题&#xff0c;不管是工作还是面试&#xff0c;但理解起来比较模糊难懂&#xff0c;因为多线程程序在跑起来的时候比较难于观察和跟踪。 搞懂多线程并发知识&#xff0c;可以在面试的时候和周围人拉开差距&#xff0…

流媒体:依托于声网的连麦解决方案

一、背景 近些年&#xff0c;直播连麦这把火在流媒体领域整整燃烧了 6 年。从刚开始的简单探索&#xff0c;到现在的成熟全链路方案&#xff0c;不得不说日益增长的激烈竞争&#xff0c;已将让原本的蓝海领域变成了深海互搏。在这样的大环境下&#xff0c;是否意味着小厂将再也…

分布式系统(P2P Lookup)

文章目录P2P 系统NapsterBitTorrentGnutellaChordConsistent HashingSimple Key LocationScalable Key LocationKademliaRouting TableKademlia’s RPCAdaptabilityDistributed Hash TableP2P 系统 Peer to peer 系统&#xff1a; 每个结点在连接上是互联的&#xff0c;在功能…

Spring MVC: 一种简洁且强大的Web应用框架

⭐️前言⭐️ 这篇文章介绍Spring MVC&#xff0c;Spring MVC是现在基本所有Java程序的主流开发框架&#xff0c;这篇文章主要介绍三部分内容&#xff1a; 实现用户和程序的映射(在浏览器输入URL地址之后&#xff0c;能够在程序中匹配到相应方法)。服务器端得到用户的请求参数…

c语言笔记1 输入和输出注意事项,常量 变量 static

输出&#xff1a;printf c的编译器不会检测格式串中转换说明的数量和数据类型是否和后面的变量一致。转换说明的数据类型与实际数据类型不一致时&#xff0c;产生无意义的值。 int 类型的变量length&#xff0c;值为9&#xff0c;输出时将类型写为float或double&#xff0c;输…

【自然语言处理】【ChatGPT系列】InstructGPT:遵循人类反馈指令来训练语言模型

InstructGPT&#xff1a;遵循人类反馈指令来训练语言模型《Training language models to follow instructions with human feedback》论文地址&#xff1a;https://arxiv.org/pdf/2203.02155.pdf 相关博客 【自然语言处理】【ChatGPT系列】InstructGPT&#xff1a;遵循人类反馈…

联想小新pro13 卡顿解决办法

问题 本人电脑型号是 联想小新 pro13 2020 i7 才用了两年多&#xff0c;变得巨卡无比 ctlshiftesc打开任务管理器 cpu利用率才30%多 打字就一顿一顿的出结果 浏览网页也卡的掉帧&#xff0c;更不用说打游戏了 真的很无语&#xff0c;重装了系统也没啥用 思路 在网上搜了一圈…

Linux 网络基础

目录 一.网络 1.重新看待计算机结构 2.几种网络 二.协议 1.协议分层 2.OSI七层模式 3.TCI/IP五层(或四层)模型 三.网络传输 1.网络和操作系统之间的关系 2.网络传输流程图 3.数据包封装和应用 前言&#xff1a;这一篇大体介绍一下网络的一些基础知识。 一.网络 1.重…

do while语句

上次讲了while语句&#xff0c;这次讲一下do while语句。 do...while 循环是 while 循环的变体。在检查while()条件是否为真之前&#xff0c;该循环首先会执行一次do{}之内的语句&#xff0c;然后在while()内检查条件是否为真&#xff0c;如果条件为真的话&#xff0c;就会重复…

王卫点赞友商?北京快递保卫战,顺丰彰显大格局大气度

当下&#xff0c;随着全面放开&#xff0c;国内新冠疫情到了另一个严峻的拐点时刻&#xff0c;特别是北京&#xff0c;正日益逼近感染高峰期。 作为社会生活的毛细血管&#xff0c;快递物流企业们在当下的新冠疫情大背景下上演了一幕幕的鲜活的画面&#xff0c;快递行业市场新…

如何磁盘格式化?分享格式化U盘的3个方法

格式化可以有效管理硬盘&#xff0c;在一定程度上能保证磁盘的性能和使用寿命。尤其是我们遇到一些情况&#xff0c;必须要把U盘进行格式化才行。那么磁盘格式化怎么操作&#xff1f;遇到无法格式化的情况怎么办&#xff1f;别急&#xff0c;下面有3个关于格式化U盘的方法&…

通信协议综述-第3讲 | ifconfig:最熟悉又陌生的命令行

上一节结尾给你留的一个思考题是,你知道怎么查看 IP 地址吗? 当面试听到这个问题的时候,面试者常常会觉得走错了房间。我面试的是技术岗位啊,怎么问这么简单的问题? 的确,即便没有专业学过计算机的人,只要倒腾过电脑,重装过系统,大多也会知道这个问题的答案:在 Win…

图片跟随鼠标移动效果的抖动问题

场景 图片跟随鼠标移动效果的实现思路&#xff1a; 触发mousemove事件响应时&#xff0c;通过e.offsetX,e.offsetY获取到当前鼠标的位置。再修改图片的css样式中的top, left属性&#xff08;图片采用绝对定位&#xff09;。 代码如下&#xff1a; <div id"angel&quo…

车载TBOX嵌入式设备软件的功能测试

作者 | 李伟 上海控安安全测评中心安全测评部总监 来源 | 鉴源实验室 01 Tbox简介 Tbox(Telematics Box)是汽车座舱系统中的一个ECU&#xff0c;物理外观上是一个方正的盒子&#xff0c;通常会有线束接口、HSD接口、通讯和导航天线接口等。软件上Tbox一般会基于Linux操作系统…

音视频面试涨知识(二)

1.YUV知识点 1.1 为什么要有YUV YUV的亮度信号Y和色度信号U/V是分离的&#xff0c;如果只有Y信号分量而没有U/V分量&#xff0c;这样的图像就是黑白灰度图像&#xff0c;从黑白到彩色的兼容方案。 相对RGB&#xff0c;YUV的最大优点是只占用较小的频宽&#xff0c;RGB需要至少…

EasyPytest测试平台开发日志之系统设计

EasyPytest测试平台&#xff0c;帮你高效管理Pytest测试用例。 EP平台的定位是Pytest测试用例管理平台&#xff0c;80%的自动化用例开发在PyCharm等专业的IDE中进行&#xff0c;20%的用例调度和结果查看就交给EP平台来管理。 EP平台是对teprunner测试平台的一次全新升级&#x…

【设计模式】 工厂模式 (三)

文章目录4.2 工厂模式4.2.1 概述4.2.2 简单工厂模式4.2.2.1 结构4.2.2.2 实现4.2.2.4 优缺点4.2.2.3 扩展4.2.3 工厂方法模式4.2.3.1 概念4.2.3.2 结构4.2.3.3 实现4.2.3.4 优缺点4.2.4 抽象工厂模式4.2.4.1 概念4.2.4.2 结构4.2.4.2 实现4.2.4.3 优缺点4.2.4.4 使用场景4.2.5 …

【电脑使用】硬盘无法引导进入系统,无法退出BIOS

前言 因为想要给自己的笔记本添置装备&#xff0c;于是想着把老电脑上的固态拆下来&#xff0c;但是考虑到老电脑虽然不常用&#xff0c;但还是偶尔会用&#xff0c;不能是瘫痪状态&#xff0c;于是想把我之前淘到的一个机械硬盘换上去&#xff0c;结果发现无法引导进入系统&am…