题解 CF61B Hard Work

Posted tearing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了题解 CF61B Hard Work相关的知识,希望对你有一定的参考价值。

Translation

判断字符串 (s_1, s_2, s_3) 能否通过首位相连的方式组成 (t_i)(不考虑大小写)。

Solution

首先,输入 (3) 个字符串 (s_1, s_2, s_3),因为不考虑大小写,所以可以把它们全部都变成小写(这里以小写为例,大写也可以)。

接着,读入一个 (n) ,表示有多少个 (t_i)

然后,用 while 循环 读入 (t_i),对于每一次循环:

  • 转换成小写字母。
  • 比对 (6) 中情况(详见代码)。
    • 符合输出 ( exttt{ACC})
    • 否则输出 ( exttt{WA})

Code

string s1, s2, s3, y1, y2, y3;
void work()
{
	cin >> s1 >> s2 >> s3;
	for(int i = 0; i < s1.size(); i++)
		if(s1[i] >= ‘a‘ && s1[i] <= ‘z‘)
			y1 += s1[i];
		else if(s1[i] >= ‘A‘ && s1[i] <= ‘Z‘)
			y1 += char(s1[i] + 32);
	for(int i = 0; i < s2.size(); i++)
		if(s2[i] >= ‘a‘ && s2[i] <= ‘z‘)
			y2 += s2[i];
		else if(s2[i] >= ‘A‘ && s2[i] <= ‘Z‘)
			y2 += char(s2[i] + 32);
	for(int i = 0; i < s3.size(); i++)
		if(s3[i] >= ‘a‘ && s3[i] <= ‘z‘)
			y3 += s3[i];
		else if(s3[i] >= ‘A‘ && s3[i] <= ‘Z‘)
			y3 += char(s3[i] + 32);
	int n;
	scanf("%d", &n);
	while(n--)
	{
		string qwq, qaq;
		cin >> qwq;
		for(int i = 0; i < qwq.size(); i++)
			if(qwq[i] >= ‘a‘ && qwq[i] <= ‘z‘)
				qaq += qwq[i];
			else if(qwq[i] >= ‘A‘ && qwq[i] <= ‘Z‘)
				qaq += char(qwq[i] + 32);
		if(y1 + y2 + y3 == qaq) puts("ACC");
		else if(y1 + y3 + y2 == qaq) puts("ACC");
		else if(y2 + y3 + y1 == qaq) puts("ACC");
		else if(y2 + y1 + y3 == qaq) puts("ACC");
		else if(y3 + y2 + y1 == qaq) puts("ACC");
		else if(y3 + y1 + y2 == qaq) puts("ACC");
		else puts("WA");
 	}
}

以上是关于题解 CF61B Hard Work的主要内容,如果未能解决你的问题,请参考以下文章

题解 CF1290D Coffee Varieties (hard version)

题解 CF1203D2 Remove the Substring (hard version)

CF660C Hard Process

CF802LSend the Fool Further! (hard) 高斯消元

CF932ETeam Work

CF802C Heidi and Library (hard)