当前位置: 首页 > article >正文

语言月赛 202412【正在联系教练退赛】题解(AC)

请添加图片描述
》》》点我查看「视频」详解》》》

[语言月赛 202412] 正在联系教练退赛

题目背景

在本题中,我们称一个字符串 y y y 是一个字符串 x x x 的子串,当且仅当从 x x x 的开头和结尾删去若干个(可以为 0 0 0 个)字符后剩余的字符串和 y y y 相同。

题目描述

在 XCPC 竞赛里,共有 n n n 只猪猪队伍。每只猪猪队伍都有一个队伍名称。第 i i i 只队伍的名称是 s i s_i si

但是,队伍名称不能乱起。主办方会审查每支队伍的名称。如果一支队伍的队名被认为违规,主办方就会联系该队伍的教练员,为该队伍办理退赛。

具体而言,主办方有一个字典,字典里共有 m m m 个字符串,第 j j j 个字符串是 t j t_j tj

如果一支队伍的队伍名 s i s_i si 存在一个子串 k k k,使得 k k k 在主办方的字典里,则这支队伍的队伍名被认为是违规。

你作为主办方,想知道有哪些队伍会被联系教练退赛。

输入格式

第一行是一个整数 n n n,表示队伍数量。
接下来 n n n 行,每行一个字符串,表示一支队伍的名称 s i s_i si
接下来是一个整数 m m m,表示字典大小。
接下来 m m m 行,每行一个字符串,表示字典里一个字符串 t j t_j tj

输出格式

输出 n n n 行,每行一个字符串。如果第 i i i 支队伍会被联系教练退赛,在第 i i i 行输出 Yes \texttt{Yes} Yes,否则在第 i i i 行输出 No \texttt{No} No

样例 #1

样例输入 #1

3
yifusuyi
erFusuer
yiFusuYi
2
fusu
er

样例输出 #1

Yes
Yes
No

提示

样例 1 解释

因为第一个队名包含子串 fusu \texttt{fusu} fusu,因此这支队伍会被退赛。
因为第二个队名包含子串 er \texttt{er} er,因此这支队伍会被退赛。

数据规模与约定

我们用 ∣ s i ∣ |s_i| si ∣ t j ∣ |t_j| tj 表示 s i s_i si t j t_j tj 的长度。

测试点编号 n n n m m m特殊约定
1 1 1 = 1 =1 =1 = 1 =1 =1 ∣ s i ∣ = ∣ t j ∣ = 1 \mid s_i\mid =\mid t_j\mid =1 si∣=∣tj∣=1
2 2 2 = 1 =1 =1 = 1 =1 =1
3 3 3 = 1 =1 =1 ≤ 100 \leq 100 100
4 4 4 ≤ 100 \leq 100 100 = 1 =1 =1
5 , 6 5,6 5,6 ≤ 100 \leq 100 100 ≤ 100 \leq 100 100 ∣ s i ∣ = ∣ t j ∣ = 1 \mid s_i \mid=\mid t_j\mid = 1 si∣=∣tj∣=1
7 , 8 7,8 7,8 ≤ 100 \leq 100 100 ≤ 100 \leq 100 100 ∣ t i ∣ = 1 \mid t_i \mid = 1 ti∣=1
9 , 10 9,10 9,10 ≤ 100 \leq 100 100 ≤ 100 \leq 100 100

对全部的测试数据, 1 ≤ n , m ≤ 100 1 \leq n,m \leq 100 1n,m100 1 ≤ ∣ s i ∣ , ∣ t j ∣ ≤ 100 1 \leq |s_i|, |t_j| \leq 100 1si,tj100,输入的字符串均仅含可见 ASCII 字符,其 ASCII 范围为 33 ∼ 126 33 \sim 126 33126(含两端,空格的 ASCII 为 32 32 32)。

AC_Code

#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>

using namespace std;

const int N = 1e2 + 10;

int n, m;
string s[N], str[N];

int main()
{
	cin >> n;
	for (int i = 1; i <= n; ++ i )
		cin >> s[i];
	cin >> m;
	for (int i = 1; i <= m; ++ i )
		cin >> str[i];
	
	for (int i = 1; i <= n; ++ i )
	{
		bool flag = false;
		for (int j = 1; j <= m; ++ j )
			if (s[i].find(str[j]) != string::npos)
			{
				flag = true;
				break;
			}
		
		if (flag)
			cout << "Yes" << endl;
		else
			cout << "No" << endl;
	}
	
	return 0;
}

》》》点我查看「视频」详解》》》


http://www.kler.cn/a/531652.html

相关文章:

  • 分页按钮功能
  • 蓝桥杯备考:高精度算法之除法
  • 大模型领域的Scaling Law的含义及作用
  • AI技术在SEO关键词优化中的应用策略与前景展望
  • LeetCode:53.最大子序和
  • Jenkins 触发构建的几种常见方式
  • 电动汽车常见概念
  • e2studio开发RA2E1(5)----GPIO输入检测
  • Deepseek 数据蒸馏、芯片禁售引发中美AI 之战
  • 嵌入式学习---蜂鸣器篇
  • LeetCode:53.最大子序和
  • 数据 类型
  • 【LeetCode 刷题】回溯算法(3)-子集问题
  • 基于脉冲响应不变法的IIR滤波器设计与MATLAB实现
  • 10.8 LangChain Output Parsers终极指南:从JSON解析到流式处理的规范化输出实践
  • 【R语言】环境空间
  • 【最后203篇系列】006 -使用ollama运行deepseek-r1前后端搭建
  • Java中的常见对象类型解析
  • 想学习Python编程,应该如何去学习呢
  • ChatGPT怎么回事?
  • Linux环境下的Java项目部署技巧:Nginx 详解
  • powershell编写一个简易的http服务器httpServer
  • 《基于deepseek R1开源大模型的电子数据取证技术发展研究》
  • 计算机组成原理——存储系统(二)
  • 大一计算机的自学总结:数据结构设计相关题
  • 浅谈知识蒸馏技术