首页 > 其他分享 >P8271 [USACO22OPEN] COW Operations S 奶牛操作

P8271 [USACO22OPEN] COW Operations S 奶牛操作

时间:2023-07-19 19:34:32浏览次数:44  
标签:Operations le USACO22OPEN COW 样例 字符串

P8271 [USACO22OPEN] COW Operations S 奶牛操作

目录

[P8271 USACO22OPEN] COW Operations S - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

[USACO22OPEN] COW Operations S

题目描述

Bessie 找到了一个长度不超过 \(2 \cdot 10^5\) 且仅包含字符 'C','O' 和 'W' 的字符串 \(s\)。她想知道是否可以使用以下操作将该字符串变为单个字母 'C'(她最喜欢的字母):

  1. 选择两个相邻相等的字母并将其删除。

  2. 选择一个字母,将其替换为另外两个字母的任一排列。

求出这个字符串本身的答案对 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 没有额外限制。

分析

因为一个字符可以转化成两个字符串,一个字符串也可以转化成另外的一个字母,所以原来的字符串的顺序对答案没有影响。

所以我们对于一个字符串,把它转化成 \(C 0/1\ \ O 0/1 \ \ W 0/1\) 的形式,再判断枚举就好了。

实现时可以用一个前缀和。

code

#include <bits/stdc++.h>
#define fu(x , y , z) for(int x = y ; x <= z ; x ++)
using namespace std;
const int N = 2e5 + 5;
int n , ans , ans1[N] , slen , l , r , flg , mp[N][4] , a[4];
char s[N] , s1[N];
int main () {
    int tot;
    scanf ("%s" , s + 1);
    slen = strlen (s + 1);
    fu (i , 1 , slen) {
        fu (j , 1 , 3) mp[i][j] = mp[i - 1][j];
        if (s[i] == 'C') mp[i][1] ++;
        else if (s[i] == 'O') mp[i][2] ++;
        else mp[i][3] ++;
    }
    int T;
    scanf ("%d" , &T);
    while (T --) {
        scanf ("%d%d" , &l , &r);
        fu (i , 1 , 3) a[i] = mp[r][i] - mp[l - 1][i];
        fu (i , 1 , 3) a[i] %= 2;
        if (a[1]) {
            if (!a[2] && !a[3]) printf ("Y");
            else printf ("N"); 
        }
        else {
            if (a[2] && a[3]) printf ("Y");
            else printf ("N");
        }
    }
    return 0;
}

标签:Operations,le,USACO22OPEN,COW,样例,字符串
From: https://www.cnblogs.com/2020fengziyang/p/17566534.html

相关文章

  • 题解 P4183 [USACO18JAN] Cow at Large P
    带有小trick的点分治。建议先做完弱化版再看。假如奶牛在\(u\),那么所需的最少农夫数为\(\sum\limits_{v\inson(u)}[dis(u,v)\geg_v][dis(u,fa_v)<g_{fa_v}]\)。其中\(dis(u,v)\)为\(u,v\)在树上的距离,\(g_u\)为\(u\)到离它最近的出入口的距离(BFS预处理),\(fa_u\)......
  • Closest Cow Wins S 最近的奶牛获胜
    ClosestCowWinsS最近的奶牛获胜题目传送门目录ClosestCowWinsS最近的奶牛获胜题目描述输入格式输出格式样例#1样例输入#1样例输出#1提示思路code题目描述FarmerJohn沿着一条高速公路拥有一个很长的农场,可以被看作类似于一维数轴。沿着农场有\(K\)块草地(\(1\le......
  • P3047 [USACO12FEB] Nearby Cows G
    #include<iostream>#include<vector>usingnamespacestd;constintN=100010,M=30;intn,m;intw[N];vector<int>g[N];intf[N][M],ans[N][M];voidDP1(intu,intfa){ for(inti=0;i<=m;i++)f[u][i]=w[u]; for(intx:g......
  • P3089 [USACO13NOV] Pogo-Cow S 弹簧踩高跷
    P3089[USACO13NOV]Pogo-CowS弹簧踩高跷洛谷题目传送门目录P3089[USACO13NOV]Pogo-CowS弹簧踩高跷题目描述输入格式输出格式样例#1样例输入#1样例输出#1提示题目大意方法一(线段树维护dp)code方法二(单调队列维护dp)code题目描述Inanill-conceivedattempttoenhanc......
  • qcow2云镜像,内置启动初始化配置文件及说明
    云镜像,内置启动初始化配置文件及说明cat/etc/cloud/cloud.cfg|egrep-v"^$|^#"users:-defaultdisable_root:truepreserve_hostname:falsecloud_init_modules:-migrator-seed_random-bootcmd-write-files-growpart-resizefs-disk_setup-mounts......
  • CodeForces 1842G Tenzing and Random Operations
    洛谷传送门CF传送门原来还不会这种拆期望的套路设\(b_j\)为第\(j\)次操作中选择的\(i\),所求即为\(E(\prod\limits_{i=1}^n(a_i+\sum\limits_{j=1}^m[b_j\lei]\timesv))\)。乘法也可以考虑拆期望。我们有最基础的性质\(E((a+b)\times(c+d))=E(ac)......
  • 外汇天眼:Cowtrading Wealth──假银行专员推荐黑平台,诱骗缴佣金恶意锁账号!
    许多人都知道若想降低投资风险,最好使用合法正规的交易商,因为这样做不仅能确保个人的资金安全,还能获得来自监管机构的保护。然而,许多诈骗集团竟直接假冒知名券商,试图以鱼目混珠的方式诱骗投资人入金。不久前,一位投资人向外汇天眼表示,他在2022年12月中旬认识自称是元大银行投资女专......
  • Best Cow Fences(前缀和+特殊二分)
    之前的二分大多数都是整数类型的,今天又学到一种新型的二分,浮点数的二分,浮点数的二分可太巧妙了.且听我细细分说::OpenJudge-2018:BestCowFences#include<bits/stdc++.h>usingnamespacestd;constintN=1e5+10;intn,k;doublea[N],s[N],l,r;boolcheck(doubleu)......
  • [USACO06FEB]Treats for the Cows G/S
    [USACO06FEB]TreatsfortheCowsG/S题目描述FJhaspurchasedN(1<=N<=2000)yummytreatsforthecowswhogetmoneyforgivingvastamountsofmilk.FJsellsonetreatperdayandwantstomaximizethemoneyhereceivesoveragivenperiodtime.Th......
  • Codeforces Round #225 (Div. 2)-C. Milking cows
    原题链接C.Milkingcowstimelimitpertestmemorylimitpertestinputoutputn cowssittinginarow,numberedfrom 1 to nIahubcandecidetheorderinwhichhemilksthecows.Buthemustmilkeachcowex......