[USACO2022OPEN S] COW Operations S
题目描述
Bessie 找到了一个长度不超过 \(2 \cdot 10^5\) 且仅包含字符 'C','O' 和 'W' 的字符串 \(s\)。她想知道是否可以使用以下操作将该字符串变为单个字母 'C'(她最喜欢的字母):
选择两个相邻相等的字母并将其删除。
选择一个字母,将其替换为另外两个字母的任一排列。
求出这个字符串本身的答案对 Bessie 而言并不足够,所以她想要知道 \(s\) 的 \(Q\)(\(1\le Q\le 2\cdot 10^5\))个子串的答案。
输入格式
输入的第一行包含 \(s\)。
第二行包含 \(Q\)。
以下 \(Q\) 行每行包含两个整数 \(l\) 和 \(r\)(\(1\le l\le r\le |s|\),其中 \(|s|\) 表示 \(s\) 的长度)。
输出格式
输出一个长为 \(Q\) 的字符串,如果第 \(i\) 个子串可以被转变则第 \(i\) 个字符为 'Y',否则为 'N'。
样例 #1
样例输入 #1
COW
6
1 1
1 2
1 3
2 2
2 3
3 3
样例输出 #1
YNNNYN
提示
【样例解释】
第一个询问的答案是「是」,因为 s 的第一个字符已经等于 'C'。
第五个询问的答案是「是」,因为 s 的第二到第三个字符组成的子串 OW 可以通过两步操作变为 'C':
OW
-> CWW
-> C
这个样例字符串 COW 的其他子串均不能被转变为 'C'。
【测试点性质】
- 测试点 2-4 满足 \(|s|\le 5000\) 以及 \(Q\le 5000\)。
- 测试点 5-11 没有额外限制。
找一找规律。首先发现。若有两个字符CO,转化为W再转化为OC。也就是说,任意两个字符可以交换顺序。
那么我们就可以将所有的字符排序。然后连续把两个小区。也就是说,每个字符最终只会剩一个。
一个O和一个W可以合成一个C,然后判断合成完之后是否刚好只有一个字符C即可。
既然是多次询问,那么我们预处理出前缀和,判断每一种字符有多少个,然后模2判断是否满足。
#include<cstdio>
#include<cstring>
const int N=2e5+5;
char t[N];
int q,l,r,a,b,c,s[N][3];
int main()
{
scanf("%s%d",t+1,&q);
l=strlen(t+1);
for(int i=1;i<=l;i++)
{
s[i][0]=s[i-1][0],s[i][1]=s[i-1][1],s[i][2]=s[i-1][2];
if(t[i]=='C')
s[i][0]++;
else if(t[i]=='O')
s[i][1]++;
else
s[i][2]++;
}
while(q--)
{
scanf("%d%d",&l,&r);
a=s[r][0]-s[l-1][0]&1,b=s[r][1]-s[l-1][1]&1,c=s[r][2]-s[l-1][2]&1;
if(b^c)
putchar('N');
else if(b&&c&&a)
putchar('N');
else
putchar('Y');
}
}
[USACO2022OPEN S] COW Operations S的更多相关文章
- POJ 3278 Catch That Cow(bfs)
传送门 Catch That Cow Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 80273 Accepted: 25 ...
- 【BZOJ1623】 [Usaco2008 Open]Cow Cars 奶牛飞车 贪心
SB贪心,一开始还想着用二分,看了眼黄学长的blog,发现自己SB了... 最小道路=已选取的奶牛/道路总数. #include <iostream> #include <cstdi ...
- HDU Cow Sorting (树状数组)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2838 Cow Sorting Problem Description Sherlock's N (1 ...
- backup, file manipulation operations (such as ALTER DATABASE ADD FILE) and encryption changes on a database must be serialized.
昨天在检查YourSQLDba备份时,发现有台数据库做备份时出现了下面错误信息,如下所示: <Exec> <ctx>yMaint.ShrinkLog</ctx> ...
- [BZOJ1604][Usaco2008 Open]Cow Neighborhoods 奶牛的邻居
[BZOJ1604][Usaco2008 Open]Cow Neighborhoods 奶牛的邻居 试题描述 了解奶牛们的人都知道,奶牛喜欢成群结队.观察约翰的N(1≤N≤100000)只奶牛,你会发 ...
- 细读cow.osg
细读cow.osg 转自:http://www.cnblogs.com/mumuliang/archive/2010/06/03/1873543.html 对,就是那只著名的奶牛. //Group节点 ...
- HDU 5938 Four Operations(四则运算)
p.MsoNormal { margin: 0pt; margin-bottom: .0001pt; text-align: justify; font-family: Calibri; font-s ...
- ios基础篇(二十九)—— 多线程(Thread、Cocoa operations和GCD)
一.进程与线程 1.进程 进程是指在系统中正在运行的一个应用程序,每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内: 如果我们把CPU比作一个工厂,那么进程就好比工厂的车间,一个工厂有 ...
- POJ 3176 Cow Bowling
Cow Bowling Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 13016 Accepted: 8598 Desc ...
- raw,cow,qcow,qcow2镜像的比较
在linux下,虚拟机的选择方式有很多,比如vmware for linux,virtual box,还有qemu,在以前,使用qemu的人不多,主要是使用起来有些麻烦,但现在随着Openstack的 ...
随机推荐
- React请求机制优化思路
说起数据加载的机制,有一个绕不开的话题就是前端性能,很多电商门户的首页其实都会做一些垂直的定制优化,比如让请求在页面最早加载,或者在前一个页面就进行预加载等等.随着react18的发布,请求机制这一块 ...
- docker 搭建php环境(踩坑经验!!)
本次安装的推荐配置: nginx 1.24.0 mysql 5.7.43 php 7.4.3-fpm redis 7.2.0 一.安装虚拟机 vm虚拟机需要4g内存,网络使用nat模式设置静态ip ...
- 选择合适的方法进行API接口调试
随着互联网的快速发展,API(Application Programming Interface)接口在软件开发中扮演着重要的角色.调试API接口是确保系统正常运行的关键步骤之一.本文将介绍如何选择适 ...
- ShardingSphere实战
前言 本文主要从sharding最新版本5.1.2版本入手搭建,按主键ID和时间进行分表. 本文主要介绍搭建过程,有兴趣了解shardingsphere的同学可以先自行查阅相关资料. shardsph ...
- textarea自动适应高度
textarea自动适应高度,兼容IE/Firefox.chrome 代码:<textarea name="textarea" id="textarea" ...
- HTML一键打包EXE工具1.9.9发布 (包含最新版下载地址)
HTML一键打包EXE工具(HTML封装EXE,桌件)是一款能将任意HTML项目(网址)打包为单个EXE文件的工具,无需依赖浏览器和服务器,直接双击即可运行.该工具支持多种HTML项目类型,包括KRP ...
- 「Semigroup と Monoid と Functional と」
一个被国内 oi 环境弱化至几乎不存在的概念,不过我觉得还是有学一学的必要.因为我没学过代数结构所以大部分内容都在开黄腔,欲喷从轻. Semigroup 的定义是,\(\forall a,b\in\m ...
- ISO/OSI七层模型的分层与作用
ISO/OSI的七层模型 第七层:应用层 为用户提供服务,给用户一个操作界面,如window的图形界面,Linux的命令行: 第六层:表示层 数据提供表示:把01二进制转换为图像数字等用户可以看懂的内 ...
- Python 列表操作指南3
示例,将新列表中的所有值设置为 'hello': newlist = ['hello' for x in fruits] 表达式还可以包含条件,不像筛选器那样,而是作为操纵结果的一种方式: 示例,返回 ...
- c语言代码练习1
//输出1-n阶乘的和,n为输入值//计算n的阶乘可以使用for循环,也可使用while循环#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h ...