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

[USACO2023-JAN-Bronze] T3 Moo Operations 题解

一、题目描述

因为Bessie觉得玩平时经常玩的只包含'C' 'O'和'W'的字符串无聊了,Farmer John 给了她Q个新的字符串(1≤Q≤100),这Q个字符串只包含'M'和'O'。很明显,只包含M和O的单词里Bessie最喜欢的是”MOO”,所以她希望按照下面两个规则,将这Q个字符串转换成"MOO":

  1. 替换第一个或最后一个字符成为它相反的字符(O变成M,M变成O).

  1. 删除第一个或最后一个字符.

很不幸的是,Bessie比较懒,不想做很多不必要的操作。对于每个字符串,请帮她找到最少操作次数使字符串变成”MOO”,如果不可能办到,输出-1 。

输入

第一行包含一个整数Q。

接下来Q行每行一个字符串,字符串中只包含M或O,字符串最少包含1个字符,最多包含100个字符。

输出

输出Q行,对于每个字符串,输出对应的操作次数。

样例

输入

复制

3

MOMMOM

MMO

MOO

输出

复制

4

-1

0

说明

A sequence of 4 operations transforming the first string into "MOO" is as follows:

  • Replace the last character with O (operation 1)

  • Delete the first character (operation 2)

  • Delete the first character (operation 2)

  • Delete the first character (operation 2)

The second string cannot be transformed into "MOO." The third string is already "MOO," so no operations need to be performed.

• Inputs 2-4: Every string has length at most 3.

• Inputs 5-11: No additional constraints.

二、分析

  1. 只能从前或从后对字符串进行操作,那么结果必然是连续的字符串。

  1. 最终的字符串结果是3,那么需要删除n-3个字符串

  1. 中间是M,必然操作不到,所以中间必须是O

  1. 枚举中间是O的长度为3的字符串

三、代码

#include <bits/stdc++.h>
using namespace std;
const int N=1e6;
int main() {int t;scanf("%d",&t);while(t--){char s[202];scanf("%s",s);int len=strlen(s),ans=N;for(int i=1;i<len-1;i++){if(s[i]=='O'){int cur=len-3 + (s[i-1]=='M'?0:1)+(s[i+1]=='O'?0:1);ans=min(ans,cur);}}printf("%d\n",ans>=N?-1:ans);}return 0;
}

相关文章:

[USACO2023-JAN-Bronze] T3 Moo Operations 题解

一、题目描述因为Bessie觉得玩平时经常玩的只包含C O和W的字符串无聊了&#xff0c;Farmer John 给了她Q个新的字符串(1≤Q≤100)&#xff0c;这Q个字符串只包含M和O。很明显&#xff0c;只包含M和O的单词里Bessie最喜欢的是”MOO”&#xff0c;所以她希望按照下面两个规则&…...

OKCC呼叫中心支持哪些接入方式?

使用OKCC系统开展呼叫中心业务&#xff0c;要将电话打通&#xff0c;需要什么样的设备接入到OKCC系统呢&#xff1f; 目前实际广泛使用的接入方式&#xff0c;既有硬件网关接入方式&#xff0c;也有软件接入方式&#xff0c;在生产实践中&#xff0c;我们须根据实际的需求及使…...

如何让手机共享电脑代理网络的WIFI热点

参考&#xff1a; 手机共享电脑的proxy网络 把电脑的网络代理给安卓设备如何将电脑的代理网络以WIFI热点的方式共享 电脑端设置代理&#xff1a; 打开电脑上的 proxy软件并设置其端口号&#xff08;例如&#xff1a;7890&#xff09;&#xff0c;且允许局域网&#xff08;例如…...

渲染有问题?怎么办?6种方法让你渲染无忧

简单点&#xff0c;解决问题的方式简单点。 日常工作中我们总会遇到各种各样的问题&#xff0c;比如渲不出图&#xff0c;速度太慢或效率太低&#xff0c;各种噪点和黑图等等&#xff0c;烦不胜烦&#xff0c;今天我就针对6个常见的问题给大家说下方法&#xff0c;一家之言仅供…...

中国人寿业务稳定性保障:“1+1+N” 落地生产全链路压测

引言 保险业务的数字化转型正如火如荼地进行&#xff0c;产品线上化、投保线上化、承保线上化、核保线上化等业务转型&#xff0c;导致系统的应用范围不断扩大&#xff0c;用户的高频访问也正在成为常态。同时&#xff0c;系统复杂性也呈指数上升&#xff0c;这些因素都增加了…...

2/17考试总结

时间安排 7:40–7:50 读题&#xff0c;T1 貌似是签到&#xff0c;T2,T4 DP,T3看起来很不可做。 7:50–8:00 T1,差分一下然后模拟就行了。 8:00–10:20 T2,注意到值域很小&#xff0c;可以考虑状压&#xff0c;想到一个状压状态数较少的 dp &#xff0c;然后挂得彻底。发现有一…...

零信任-360连接云介绍(9)

​360零信任介绍 360零信任又称360连接云安全访问平台(下文简称为&#xff1a;360连接云)&#xff0c;360连接云&#xff0c;是360基于零信任安全理念&#xff0c;以身份为基础、动态访问控制为核心打造的安全访问平台。 通过收缩业务暴露面、自适应增强身份认证、终端持续检…...

使用dlib进行人脸检测和对齐

最近在配置人脸属性识别的服务&#xff0c;用过faceboxes_detector&#xff08;faster rcnn的包&#xff09;&#xff0c;也用过face_recognition的&#xff0c;但是她们都没有做人脸对齐&#xff0c;而且检测人脸的范围也不太一样。没有做人脸对齐的时候&#xff0c;使用属性识…...

将python代码封装成c版本的dll动态链接库

前言 将python程序打包成DLL文件&#xff0c;然后用C调用生成的DLL文件&#xff0c;这是一种用C调用python的方法&#xff0c;这一块比较容易遇到坑。网上关于这一块的教程不是很多&#xff0c;而且大部分都不能完全解决问题。我在傻傻挣扎了几天之后&#xff0c;终于试出了一个…...

AI技术网关如何用于安全生产监测?有什么优势?

现代工业生产和运营的规模越来越庞大、系统和结构越来越复杂&#xff0c;现场的风险点多面广&#xff0c;给作业一线的安全监管带来极大的挑战。 针对工地、煤矿、危化品、加油站、烟花爆竹、电力等行业的安全生产监管场景&#xff0c;可以借助AI智能与物联网技术&#xff0c;…...

2|数据挖掘|关联规则|Association Rules|Apriori算法|Frequent-pattern tree和FP-growth算法|11.11

...

刷题记录:牛客NC53370 Forsaken的三维数点

传送门:牛客 题目描述: Forsaken现在在一个三维空间中&#xff0c;空间中每个点都可以用(x,y,z)表示。突然&#xff0c;三维空间的主人出现 了&#xff0c;如果Forsaken想要继续在三维空间中呆下去&#xff0c;他就必须回答三维空间主人的问题.主人会在空间 中坐标为(x,y,z)处…...

lombok的原理 和 使用

原理Lombok能以简单的注解形式来简化java代码&#xff0c;提高开发人员的开发效率。其实并没有改变字节码文件的任何内容&#xff0c;只是简化的程序员编写代码的方式。不使用lombok&#xff1a;使用lombok&#xff1a;lombok常用注解Setter &#xff1a;注解在类或字段&#x…...

UDP网络编程

UDP和TCP 前几节我们提到了计算机网络编程中的TCP编程&#xff0c;TCP和UDP都是计算机机网络通信的传输层中的传输协议&#xff0c;今天我们来学习计算机网络编程中的基于UDP传输协议的网络编程 首先我们要了解TCP和UDP的区别 它们是同属于计算机网络传输层的传输协议 TCP&…...

“合并区间”问题解析及其思考

合并区间题目以数组 intervals 表示若干个区间的集合&#xff0c;其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间&#xff0c;并返回 一个不重叠的区间数组&#xff0c;该数组需恰好覆盖输入中的所有区间 。解析本题思路相对比较容易想先对各个区间按左…...

2023年理想新能源汽车核心部件解密

理想主要硬件清单(L9车型) 汽车结构 设置名称 规格 备注 价格 供应商 感知层...

C++ 将一个vector内容赋值给另一个vector,及swap与assign的区别

在本文中&#xff0c;我们将主要介绍5种将一个vector内容赋值给另一个vector的方式&#xff0c;顺便讨论下swap与assign的区别。 赋值 方式一、申明时赋值 vector<int> v2; v2.push_back(0); v2.push_back(1);vector<int> v1(v2); //声明方式二、使用assign赋值…...

PMP的价值有哪些?

我个人认为&#xff0c;考证只有两个出发点是正确的。一是为了提升自己或者满足自己的兴趣&#xff0c;另一个是和自己的职业规划相关。 比如&#xff0c;有同学想提升自己英语能力&#xff0c;可以考四六级&#xff0c;或者更厉害一点的考雅思、托福。比如&#xff0c;有的同…...

OnGUI label 控件||Unity 3D GUI教程||OnGUI Background Color 控件

Unity 3D Label 控件用于在设备的屏幕上创建文本标签和纹理标签&#xff0c;和Box 控件类似&#xff0c;可以显示文本内容或图片。Label 控件一般用于显示提示性的信息&#xff0c;如当前窗口的名称、游戏中游戏对象的名字、游戏对玩家的任务提示和功能介绍等。具体使用方法如下…...

从 JavaScript 中的数组中删除空对象

从数组中删除空对象&#xff1a; 使用 Array.filter() 方法遍历数组。将每个对象传递给 Object.keys() 方法并检查键的长度是否不等于 0。filter 方法将返回一个不包含空对象的新数组。 const arr [{}, {id: 1}, {}, {id: 2}, {}];const results arr.filter(element > {…...

【C++】AVL树和红黑树(插入和测试详解)

文章目录1、AVL树1.1 AVL树的插入1.2 总结与测试AVL树2、红黑树2.1 红黑树的插入2.2 红黑树的测试了解AVL树是为了了解红黑树&#xff0c;了解红黑树是为了更好的理解set和map。 1、AVL树 AVL树是在二叉搜索树的基础上进行了严格的平衡&#xff0c;能做到平衡的关键是通过平衡…...

Centos7 安装 Mysql 8.0.32,详细完整教程(好文章!!)

mysql5.7的安装方式参考之前的文章&#xff1a; centos7 安装 Mysql 5.7.27&#xff0c;详细完整教程&#xff08;好文章&#xff01;&#xff01;&#xff09;_HD243608836的博客-CSDN博客 一、检查mysql版本冲突 先检查是否已经存在mysql&#xff0c;若存在卸载&#xff0…...

Apache Beanutils为什么被禁止使用?

收录于热门专栏Java基础教程系列&#xff08;进阶篇&#xff09; 在实际的项目开发中&#xff0c;对象间赋值普遍存在&#xff0c;随着双十一、秒杀等电商过程愈加复杂&#xff0c;数据量也在不断攀升&#xff0c;效率问题&#xff0c;浮出水面。 问&#xff1a;如果是你来写…...

sql server执行md5加密的时候,字符串前带N和不带N的结果是不一样的

最近因为项目的需要&#xff0c;报表中需要对数据进行MD5加密&#xff0c;结果报表系统得出来的sql语句&#xff0c;字符串前都自动带了N&#xff0c;执行时&#xff0c;发现得到的结果跟在数据库中执行的sql&#xff08;字符串不带N&#xff09;得的值不一样&#xff0c;最后自…...

01Python编译器和编辑器下载

Python下载 通过python官网下载:https://www.python.org/因为python官网的服务器在国外,我们可以通过腾讯软件中心下载https://pc.qq.com/search.html#!keyword=python 腾讯软件中心下载请使用普通下载,其他什么下载会自动帮你下个电脑管家(没必要) python简单描述 python…...

CHAPTER 5 自动发现、自动注册、分布式监控、SNMP监控

自动发现与自动注册5.1 自动发现与自动注册5.1.1 简介5.1.2 两种模式5.2 自动发现--被动模式5.3 自动注册--主动模式5.4 分布式监控5.4.1 介绍5.4.2 配置zabbix proxy5.5 SNMP监控5.5.1 使用范围5.5.2 安装snmp程序5.5.3 配置snmp程序5.5.4 测试snmp5.5.5 在web界面进行配置5.1…...

P5311 [Ynoi2011] 成都七中

题目描述 给你一棵 nnn 个节点的树&#xff0c;每个节点有一种颜色&#xff0c;有 mmm 次查询操作。 查询操作给定参数 lrxl\ r\ xl r x&#xff0c;需输出&#xff1a; 将树中编号在 [l,r][l,r][l,r] 内的所有节点保留&#xff0c;xxx 所在连通块中颜色种类数。 每次查询操…...

Python 日期和时间格式

Python 程序能用很多方式处理日期和时间&#xff0c;转换日期格式是一个常见的功能。Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间。时间间隔是以秒为单位的浮点小数。每个时间戳都以自从1970年1月1日午夜&#xff08;历元&#xff09;经过了多长时间来表…...

电脑和手机的软件推荐

安卓软件 jota text 记事本 x浏览器 &#xff08;支持禁js&#xff0c;支持嗅探 视频 音频&#xff09; __ 空缺 暂未能发现好用的office软件 snapseed图片调整 可谓手机界的photoshop vidtrim视频剪辑 librera reader &#xff08;无广告 电子书软件 但是发音很差 lithum或者…...

酸回收树脂的应用

酸洗废水 在轧钢、金属表面处理、电子元件制造等过程中需要清除钢材表面氧化铁皮而使用酸进行酸洗&#xff0c;酸洗过程中会产生废酸液和酸洗废水。 这些废酸产量大、酸度高&#xff0c;而且由于酸洗废水来自钢铁和金属表面处理的清洗水&#xff0c;水中含有多种重金属离子&am…...

垫江网站建设哪家好/免费跨国浏览器

参考 我只是个搬运工, 一个探路者, 这个不是我写的, 原作者在这里 为什么有这样的需求? ...鬼知道为什么不存memcache或者redis,鬼知道你会遇到什么样的需求, 那还能怎么办,自己解决呗,为了避免下次再一顿百度..一顿谷歌...我就记录一下 建立对应的数据表 CREATE TABLE think_…...

网站开发 模块化/如何在百度发布广告

nagios客户端nrpe的安装 http://myhat.blog.51cto.com/391263/653363转载于:https://blog.51cto.com/6272283/1192830...

如何修改网站域名/品牌策划与推广

你会给电动车充电吗&#xff1f;说到电动车充电&#xff0c;可能大家都不以为然&#xff0c;不就是一个充电吗&#xff1f;有什么不会的&#xff0c;一头接电源&#xff0c;一头连电池&#xff0c;这有什么不会的。你有没有发现&#xff0c;自认为会给电动车充电的你&#xff0…...

专门做招商的网站是什么情况/网络查询网站

背景一般说MySQL的索引&#xff0c;都清楚其索引主要以B树为主&#xff0c;此外还有Hash、RTree、FullText。本文简要说明一下MySQL的BTree索引&#xff0c;以及和其相关的二叉树、平衡二叉树、B-Tree&#xff0c;相关的知识网上很多&#xff0c;为了方便自己更快、清楚的了解&…...

网络公司制作网站/百度搜索指数排名

CPU CPU 是计算机的大脑&#xff0c;它主要和内存进行交互&#xff0c;从内存中提取指令并执行它。 一个CPU 的执行周期是从内存中提取第一条指令、解码并决定它的类型和操作数&#xff0c;执行&#xff0c;然后再提取、解码执行后续的指令。重复该循环直到程序运行完毕。 每…...

建站网站官方/网站建设规划书

frp中文文档&#xff1a;https://github.com/fatedier/frp/blob/v0.14.0/README_zh.md frp配置文件下载&#xff1a;https://github.com/fatedier/frp/releases/tag/v0.21.0 配置文件下载说明&#xff1a; linux服务器&#xff1a;frp_0.21.0_linux_amd64.tar.gz 树莓派&#x…...