Codeforces Round #734 (Div. 3)B1-Wonderful Coloring - 1

Codeforces Round #734 (Div. 3)-B1. Wonderful Coloring - 1

原题链接
1.time limit per test1 second
2.memory limit per test256 megabytes
Description:
screen
在这里插入图片描述
答题思路
题目中给定限制“相同颜色的两个字母必须是两个不相同的字母”,转换一下思路即“两个相同的字母涂的颜色必须不一样”,继而推出“超过两个数量的相同字母最多能涂2种不同的颜色”。假设所涂颜色个数总和为sum,又因为两种相同颜色的数量相等,所以红色与绿色分别有sum/2个。
例如abbb,a涂红,第一个b涂绿,第二个b涂红,若第三个b涂绿,则第一个b与第三个b不符合题目所给限制,此时共有sum=3,红色和绿色分别涂sum/2=1个。
代码

#include<bits/stdc++.h>
#define maxn 55
typedef long long ll;
using namespace std;
int main()
{
   ll t,i,count[maxn]={0},sum;
   cin>>t;
   while(t--)
   {
       string s;
       sum=0;
       cin>>s;
       for(i=0;i<s.size();i++)
       {
           count[s[i]-'a']++;
           if(count[s[i]-'a']<=2) sum++;
       }
       memset(count,0,sizeof(count));
       printf("%lld\n",sum/2);
   }
   return 0;
}

以上为本人所想到的方法,如有出错之处,请您立刻通知本人,本人将以感激的态度接受您的指正。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值