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

打卡信奥刷题(2760)用C++实现信奥题 P3752 语言普查

P3752 语言普查

题目背景

“Kiaosmaonsnai Assi fi wais.”

“Kjamqosoaksi mais pas?”

“Oci! Asia olo mnai naso!”

“2333 在说什么啊根本听不懂……”

这是 Yugo 国的日常……

Yugo 国的人民在进行一次人口普查,由于 Yugo 国是典型的多民族国家,所以拥有许多种语言。

题目描述

Yugo 国有许多不同的种族,总共有N NN种不同的语言,但是主席扔给了你几本字典,这样,你就知道他们在说什么语了。你的任务就是判断他们在说什么语并填上户口本。

具体的,给出N NN种语言的名称以及已知的来自该语言的若干个单词,保证每个单词最多出现在一种语言中。同时你还会得到若干个句子,对于每个句子,你都需要判断它属于哪种语言(单词匹配不区分大小写)。

一个句子是一个仅包含大小写字母、空格、-'.,?!;()的字符串,其中有且仅有.,?!;()是分隔符。一个句子由若干个单词和分隔符构成。

句子中每个极大的不包含分隔符的子串都是一个单词。即:若一个句子的子串S SS不包含分隔符,且不存在该句子的另一个子串T TT满足T TT不包含分隔符、S SST TT的子串且S ≠ T S\ne TS=T,则S SS是该句子中的一个单词。

同时,输入数据中的句子有以下性质:

  • 一个句子中不会同时包含来自不同语言的两个单词。
  • 一个句子中包含至少一个来自一种语言的单词。
  • 一个句子中可能出现在任何一个语言的已知词语中都没有出现过的词语。

一个句子属于一种语言当且仅当该句子中存在一个单词S SS来自该语言。

输入格式

第一行一个整数N NN,表示不同语言的数量。

接下来N NN行,依次是该语言的名称和该语言中的若干个单词,单词之间用空格隔开。

接下来一行为空行。

接下来若干行(不超过10 3 10^3103行),每行一个句子。

输出格式

对于每个句子,输出一行一个字符串,表示该句子属于的语言的名称。

输入输出样例 #1

输入 #1

4 Qzrian yy ghy qzr Yugoslavian mihailova petrozavodsk saint-petersburg Suissvia yugoslavia korse mais kohnin Mohaian Jzm Wallace Zhangbaohua djh yy,qzr and ghy are i don't know mihailova saZk amOmlio mais c'est pas Ca wallace is good

输出 #1

Qzrian Yugoslavian Suissvia Mohaian

说明/提示

对于100 % 100\%100%的数据,1 ≤ N ≤ 100 1\le N\le 1001N100,输入数据每行不超过256 256256个字符。

C++实现

#include<bits/stdc++.h>usingnamespacestd;boolcheck(charc){return!islower(c)&&!isupper(c)&&c!='\''&&c!='-';}voidconvert(string&s){for(auto&c:s)if(isupper(c))c+='a'-'A';}intmain(){ios::sync_with_stdio(false);cin.tie(0);map<string,string>mp;string s,a,b;getline(cin,s);stringstreamss(s);intn;ss>>n;while(n--){getline(cin,s);s+=' ';a="";intflag=0;for(auto&c:s){if(check(c)){if(flag++&&b.size())convert(b),mp[b]=a;b="";}else{if(flag)b+=c;elsea+=c;}}}getline(cin,s);while(getline(cin,s)){s+=' ';a="";for(auto&c:s){if(check(c)){convert(a);if(mp.count(a))b=mp[a];a="";}else{a+=c;}}cout<<b<<'\n';}return0;}

后续

接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容

http://www.jsqmd.com/news/313692/

相关文章:

  • 学霸同款8个AI论文网站,助你轻松搞定本科毕业论文!
  • 常用JDK版本概览(2025年)
  • Thinkphp和Laravel大健康养老院公寓管理系统_to14d_
  • HTML--格式化标签
  • 泰涨知识 | 10分钟快速入门Hive之基本操作篇 - 教程
  • 新叶集1
  • 【Linux】进程概念(四)(命令行参数和环境变量) - 详解
  • MySQL--库的操作、数据类型、表的操作
  • Spring 框架: IOC、DI、AOP 三大核心
  • 运行报表:支撑IT外包公司为客户交付全栈网络报表分析方案
  • 季度管理升级:助力设备商为客户交付季度协同管理升级方案
  • aiohttp+asyncio 实现高并发异步爬虫
  • Thinkphp和Laravel+办公管理系统_
  • HTML元素+网页布局区块概念汇总表
  • Thinkphp和Laravel儿童性教育新闻文章论坛网站_
  • matlab simulink 使用ros2 的sub和pub需要注意的事项,以及部署事项(注意事项)
  • 人工智能数据分析科学家:20个月系统培养大纲 (1.0版)【20260128】002篇
  • 热销榜单:2026年抗菌抗病毒无纺布供应商推荐
  • Excel CHOOSE函数全攻略:从基础选择到高级数据重组的全能工具
  • Excel INDIRECT函数深度解析:动态引用的终极武器
  • 04基于观测器的线性多智能体事件触发一致性
  • Reddit营销:如何在Reddit写出“像用户一样”的营销贴?、
  • SQL 注入已死?WAF 绕过实战:我是如何攻破这个“固若金汤”的防火墙的
  • AIGC设计:内容生成与场景落地的核心方法与实践指南
  • AI绘图:快速出好图的核心技巧与常见误区
  • 2026毕设ssm+vue旅游分享平台论文+程序
  • 2026毕设ssm+vue旅游服务软件论文+程序
  • 2026毕设ssm+vue旅游出行系统论文+程序
  • 2026毕设ssm+vue旅游打卡系统论文+程序
  • ArcGIS Python零基础脚本开发教程---1.1 Describe 函数