您的位置:首页 > 其它

Codeforces 868A Bark to Unlock 水题

2017-10-06 10:39 639 查看

题意

给两个小写字母作为密码,一个n(100),接下来n行每行两个小写字母.

询问从n行中选任意次任意行能否拼接成一个字符串,密码串为该字符串的子串.

解法

两种情况.

1.存在一个串与密码串完全相同.

2.存在一个串的第二个字符与密码串第一个字符相同,且存在一个串的第一个字符与密码串第二个字符相同.

满足其一即可.

代码

/* LittleFall : Hello! */
#include <bits/stdc++.h>
using namespace std;
int main(void)
{
char p[5],pp[110][5];
int n,ans1=0,ans2=0;
scanf("%s%d",p,&n);

for(int i=0;i<n;i++)
{
scanf("%s",pp[i]);
}
for(int i=0;i<n;i++)
{
if(pp[i][0]==p[0]&&pp[i][1]==p[1])
{
printf("YES\n");
return 0;
}
if(pp[i][0]==p[1])
ans1=1;
if(pp[i][1]==p[0])
ans2=1;
}
if(ans1&&ans2)
printf("YES\n");
else
printf("NO\n");
return 0;
}


注意询问题读入与判断最好分离.

重写用时:2min.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: