1451C - String Equality

传送门

题意:给出两个字符串a,b,用以下操作:<1>可以交换任意两个相邻字符的位置。<2>可以将连续的K个字符加1,如k=3,则bbbaa,可变为cccaa。最后能将a变为b。

思路:
对于第一个操作的运用:看到可以交换任意两个相邻字符位置,其实等同于可以给所有字符重新排列,如此我们需要的只是把a的各个字符相应的数量转变为b的各个字符数量即可。

对于第二操作的应用:可以将相邻的K个字符加一,那么我们为了更好的运用,就直接把所有的相同字符排列在一起,然后按字符从‘a’到’z’比较,如果a某低位的字符加上之前剩余可转化字符大于等于b的则可以完成b的相对应的某字符转化,且必须将剩余的某字符转化成下一个字符,这样才可以达到a b对于这个字符数量相等,直到每个字符都可以达成转化则对,具体见代码。

    #include<bits/stdc++.h>
    #define FAST ios::sync_with_stdio(false),cin.tie(0),cout.tie(0)
    using namespace std;
    typedef long long ll;
    int sum1[30], sum2[30];
    int main()
    {
   
    	FAST;
    	int t;cin >> t;
    	while (t--)
    	{
   
    		int n, k;cin >> n >> k;
    		string str1, str2;cin >> str1 >> str2;
    		memset(sum1, 0, sizeof(sum1));
    		memset(sum2, 0, sizeof(sum2));
    		for (int i = 0;i < str1.size();i++)
    		{
   
    			sum1[str1[i] - 'a' + 1]++;
    			sum2[str2[i] - 'a' + 1]++;
    		}
    		int f = 1, sum = 0;
    		for (int i = 1;i <= 26;i++)
    		{
   
    			if (sum1[i]+sum < sum2[i])
    			{
   
    				f = 0;break;
    			}
    			sum += (sum1[i] - sum2[i]);
    			if (sum % k != 0)//不能整除
    			{
   
    				f = 0;break;
    			}
    		}
    		if (f)cout << "Yes" << endl;
    		else cout << "No" << endl;
    	}
    }
全部评论

相关推荐

来个大佬救一下,为上投了都是石沉大海了,没实习经历的话怕秋招直接进不了面。什么实习这么难找,基本
心态爆炸了:现在正式的岗位都少,实习基本不咋招的,除了大厂,中小企业其实没那么多岗位需求,就算是有,大多都是招一两个廉价劳动力,同时,他们也会希望你一来就能干活的,没时间培训你,就让你了解公司的项目,你了解完就可以开始干活。再者是,很多低质量的实习其实用处没有那么大的。我去年也是找实习找到破防,最后去了一家深圳的小公司实习,工作对我来说很简单,甚至不如我在学校做的项目,秋招的时候,这段实习经历也并没有帮上什么忙,投递简历,依旧非常低的回复率。低回复率是常态,尤其是找实习,找不到,那就把重心放在优化自己的简历和项目,多看八股文,锻炼自己的面试能力,多看别人的面经,自己模拟面试,等秋招的时候,只要有那么寥寥几次,好好抓住那几次机会。
点赞 评论 收藏
分享
Twilight_m...:表格简历有点难绷。说说个人看法: 1.个人基本情况里好多无意义信息,什么婚姻状况、健康状况、兴趣爱好、户口所在地、身份证号码、邮政编码,不知道的以为你填什么申请表呢。 2.校内实践个人认为对找工作几乎没帮助,建议换成和测开有关的项目,实在没得写留着也行。 3.工作经历完全看不出来是干什么的,起码看着和计算机没啥关系,建议加强描述,写点你在工作期间的实际产出、解决了什么问题。 4.个人简述大而空,看着像AI生成,感觉问题最大。“Python,C,C++成为我打造高效稳定服务的得力工具”、“我渴望凭借自身技术知识与创新能力,推动人工智能技术的应用发展,助力社会实现智能化转型”有种小学作文的美感。而且你确定你个人简述里写的你都会嘛?你AI这块写的什么“深入研究”,发几篇顶会的硕博生都不一定敢这么写。而且你AI这块的能力和软测也完全无关啊。个人简述建议写你对哪些技术栈、哪些语言、哪些生产工具的掌握,写的有条理些,而且最好是和测开强相关的。
点赞 评论 收藏
分享
07-09 15:55
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务