首页 > 其他分享 >AGC059A

AGC059A

时间:2022-12-11 11:57:25浏览次数:55  
标签:ABC 交界处 int 个数 一定 AGC059A

date: 2022-12-06

第一道AGC

这很可能是我的的最后几题之一了

[[This is a tag]]

A - My Last ABC Problem

赛时直接卡住,还好QY明智地提早开了unrated

先考虑一段区间,然后发现选一段区间进行转换等价于剩下的一部分进行转化

所以可以把询问区间看成一个循环,我们每次最多能够删两个交界处

有因为一共只有3种颜色,所以如果有4个及以上交界处,那么一定能够找到两个对称的边界,那么就是一定可以删掉两个边界

当交界处个数为3时,一定形如 ABC 所以答案一定为2
当交界处个数为2时,一定形如 AB 所以答案一定为1
交界处个数不可能为1

#include<bits/stdc++.h>
using namespace std;
const int N=100005;
int n,q,l,r,k[N];
char s[N];
int main(){
	scanf("%d%d",&n,&q);
	cin>>s+1;
	for(int i=2;i<=n;i++){
		k[i]=k[i-1];
		if(s[i]!=s[i-1])k[i]++;
	}
	while(q--){
		scanf("%d%d",&l,&r);
		int x=k[r]-k[l]+(s[r]!=s[l]);
		printf("%d\n",x/2+x%2);
	}
}

标签:ABC,交界处,int,个数,一定,AGC059A
From: https://www.cnblogs.com/-WD-/p/16973110.html

相关文章