首页 > 其他分享 >codeforces刷题(1100):1907C_div3

codeforces刷题(1100):1907C_div3

时间:2023-12-24 23:55:40浏览次数:46  
标签:tmp 字符 maxx int codeforces 1907C mp div3 数量

C、Removal of Unattractive Pairs

跳转原题点击此:该题地址

1、题目大意

  给定一个字符串,可以删除相邻的两个不相等的字符。问你删除后能得到最小的字符串长度为多少。

2、题目解析

  因为只要两个不相等的字符相邻就能消除,所以只需要找到数量最多的字符,只要它的数量比其它字符数量和多,那么剩下的字符一定是数量最多的字符;

如果其它字符数量和多,只需要判断字符串长度是不是偶数,如果是,那么就一定能全部消除,否则,一定剩下一个字符。

#include<bits/stdc++.h>

using namespace std;

const int N = 2e5 + 10;

int t;
int n;
string s;
map<char, int>mp;

void solve()
{
	s.clear();
	mp.clear();
	
	cin >> n >> s;
	int maxx = 0;
	for(auto tmp : s)
	{
		mp[tmp]++;  // 记录字符的数量
		maxx = max(maxx, mp[tmp]);
	}
	
	int half = n / 2;
	if(maxx >= half)
		cout << abs(maxx - (n - maxx)) << endl;
		
	else
		if(n & 1)  // 判断奇偶
			cout << 1 << endl;
		else
			cout << 0 << endl;
}

int main()
{
	cin >> t;
	while (t--)
	{
		solve();
	}

	return 0;
}

标签:tmp,字符,maxx,int,codeforces,1907C,mp,div3,数量
From: https://www.cnblogs.com/Tom-catlll/p/17925132.html

相关文章

  • CodeForces 1909E Multiple Lamps
    洛谷传送门CF传送门感觉这个题比较难蚌。发现按\(1\simn\)最后可以把\(1\simn\)中的所有平方数点亮。所以\(n\ge20\)就直接输出\(1\simn\)。考虑\(n\le19\)。猜测合法的方案(即按完后亮灯数\(\le\left\lfloor\frac{n}{5}\right\rfloor\)的方案,不考虑\((......
  • CodeForces 1909D Split Plus K
    洛谷传送门CF传送门设最后每个数都相等时为\(t\)。那么一次操作变成了合并两个数\(x,y\),再增加\(x+y-k\)。于是每个\(a_i\)可以被表示成\(b_it-(b_i-1)k\)的形式,化简得\(a_i-k=b_i(t-k)\)。因为\(t-k\)对于每个\(i\)都相同,又因为我们的目标是......
  • CodeForces 1909F2 Small Permutation Problem (Hard Version)
    洛谷传送门CF传送门感觉这个题还是挺不错的。考虑F1。考察\(a_i\)差分后的意义,发现\(a_i-a_{i-1}\)就是\((\sum\limits_{j=1}^{i-1}[p_j=i])+p_i\lei\)。考虑将其转化为棋盘问题。在\((i,p_i)\)放一个车,那么\(a_i-a_{i-1}\)就是\((1,i)\sim......
  • Codeforces 1900E Transitive Graph
    考虑题目的限制条件:存在$a\tob,b\toc$的边,就会有$a\toc$的边。考虑$p_{1\simk}$,满足这$k$个点按顺序组成了一个环且无重点。那么$p_1\top_2,p_2\top_3$,就有$p_1\top_3$,又有$p_3\top_4$,所以有$p_1\top_4$。以此类推,会发现$\foralli,j\in[1,k],i\not......
  • Codeforces Round 651 (Div. 2)C. Number Game(数学思维数论)
    C.NumberGame我们考虑那些状态是必胜态我的回合时n为奇数(除1外),直接除以n则必胜下面偶数的情况稍复杂偶数我们能进行的操作只有除以一个奇数,需要考虑怎么把当前状态变为对手的必败态偶数一定含2的因子,\(n=2^k*q,q为奇数\)当\(k=1时如果q\)是一个质数那么只能除一次q这样......
  • [Codeforces] CF1579C Ticks
    CF1579CTicks题意\(n\timesm\)的棋盘,左上角和右下角坐标分别为\((1,1),(n,m)\),一开始每个格子为白色。每次操作可以选择一个格子\((x,y)\)以及左上角和右上角方向的\(d\)个连续格子染成黑色,并将其称为一个大小为\(d\)的对勾图案。如果多个对勾图案重复对一个格......
  • [Codeforces] CF1811E Living Sequence
    CF1811ELivingSequence这道题洛谷题解的思路比我的更好,可以参考一下题解,但是没人提到我这种做法题意给定一个正整数\(k\)\((1\lek\le10^{12})\),请你输出第\(k\)个数字里没有4的正整数。思路设\(f_i\)表示前\(10^i\)个\(i\)位数里边不含4的数的个数,列举几个如......
  • [Codeforces] CF1817A Almost Increasing Subsequence
    CF1817AAlmostIncreasingSubsequence题意给定长度为\(n\)一个序列\(a\)以及\(q\)次询问,每次询问给出\(l\)和\(r\),找出序列\(a\)在\([l,r]\)内最长的几乎递增子序列。对于几乎递增的定义:如果一个序列中不存在连续的三个数\(x\),\(y\),\(z\),使得\(x\gey\ge\......
  • Codeforces Round 916 (Div. 3)
    目录写在前面ABCDE1/E2FG1G2写在最后写在前面比赛地址:https://codeforces.com/contest/1914。第二天没早八打个div3休闲娱乐保持下手感,然而div3都AK不了了,纯纯废物一个,天天上大学导致的。唉,一学期碰上好几个byd恼弹老师,大学一秒也不想上了,折磨。马娘台服马上1.5周......
  • Educational Codeforces Round 160 (Rated for Div. 2)
    A.RatingIncrease字符串处理#include<bits/stdc++.h>usingnamespacestd;voidsolve(){ strings; cin>>s; intn=s.size(); s=""+s; for(inti=1;i<=n-1;i++){ stringt=""; for(intj=1;j<=i;j++){ t=t+s[j]; } ......