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

东方博宜OJ 1953:新生舞会 ← STL map / 结构体

​【题目来源】
https://oj.czos.cn/p/1953

【题目描述】
新生舞会开始了。
n 名新生每人有三个属性:姓名、学号、性别。其中,姓名用长度不超过 20 的仅由大小写字母构成的字符串表示,学号用长度不超过 10 的仅由数字构成的字符串表示,性别用一个大写字符 F 或 M 表示。任意两人的姓名、学号均互不相同。换言之,每个人可被其姓名或学号唯一确定。
给出 m 对两人的信息(姓名或学号),判断他们是否能共舞。两人能共舞的充要条件为两人性别相异。

【输入格式】
第一行一个整数 n(2≤n≤1000),表示学生人数。接下来的 n 行每行依次包含一名新生的姓名、学号、性别,分别用一个空格隔开。
之后的一行是一个整数 m(1≤m≤1000),表示询问的数目。
接着的 m 行每行包含两个信息(姓名或学号),保证两个信息不属于同一人,中间用一个空格隔开。​​​​​​​

【输出格式】
对于每个询问输出一行,如果两人可以共舞,输出一个大写字母 Y,否则输出一个大写字母 N。

【输入样例】
4
John 10 M
Jack 11 M
Kate 20 F
Jim 21 M
3
John 11
20 Jack
Jim Jack​​​​​​​

【输出样例】
N
Y
N

【数据范围】
2≤n≤1000,
1≤m≤1000

【算法分析】
isdigit(x) 函数用于判断字符 x 是否为十进制数字字符(即 '0' 到 '9')。

【算法代码:STL map

#include <bits/stdc++.h>
using namespace std;map<string,char> nameToSex;
map<string,char> idxToSex;
string name,idx;
char sex;
int n,m;int main() {cin>>n;while(n--) {cin>>name>>idx>>sex;nameToSex[name]=sex;idxToSex[idx]=sex;}cin>>m;while(m--) {string s,t;cin>>s>>t;char sexA, sexB;if(isdigit(s[0])) sexA=idxToSex[s];else sexA=nameToSex[s];if(isdigit(t[0])) sexB=idxToSex[t];else sexB=nameToSex[t];if(sexA!=sexB) cout<<"Y"<<endl;else cout<<"N"<<endl;}return 0;
}/*
in:
4
John 10 M
Jack 11 M
Kate 20 F
Jim 21 M
3
John 11
20 Jack
Jim Jackout:
N
Y
N
*/


【算法代码二:结构体 + STL map

#include <bits/stdc++.h>
using namespace std;const int maxn=1e3+5;
map<string,char> nameToSex;
map<string,char> idxToSex;struct Person {string name;string idx;char sex;
} p[maxn];int main() {int n,m;cin>>n;for(int i=1; i<=n; i++) {cin>>p[i].name>>p[i].idx>>p[i].sex;nameToSex[p[i].name]=p[i].sex;idxToSex[p[i].idx]=p[i].sex;}cin>>m;while(m--) {string s,t;cin>>s>>t;char sexA,sexB;if(isdigit(s[0])) sexA=idxToSex[s];else sexA=nameToSex[s];if(isdigit(t[0])) sexB=idxToSex[t];else sexB=nameToSex[t];if(sexA!=sexB) cout<<"Y"<<endl;else cout<<"N"<<endl;}return 0;
}/*
in:
4
John 10 M
Jack 11 M
Kate 20 F
Jim 21 M
3
John 11
20 Jack
Jim Jackout:
N
Y
N
*/

 


【参考文献】
https://oj.czos.cn/p/1953

 

 

 

 

http://www.gsyq.cn/news/194195.html

相关文章:

  • 论文降重技巧Top6:智能工具与创新方法全解析
  • 离散元后处理工具集:使用PFC数据绘制云图并导入MATLAB生成三维图形
  • ​​​​​​​从翻页功能都搞不定,到主导资产系统落地:我的第一个项目成长记
  • 论文查重优化方案:六大AI工具高效改写指南
  • 2026大专机械设计与制造专业必考证书清单(就业与薪资导向)
  • 基于遗传算法的车辆优化调度与成本最小化:考虑多配送中心与供应惩罚的Matlab完整代码
  • Linux环境下前后端分离项目(Spring Boot + Vue)手动部署全流程指南
  • 别再熬夜赶论文?8个免费AI生成器让效率直飙300%!
  • 四参数随机生长法QSGS算法:随机孔隙结构与微观孔隙优化处理的生成与处理
  • MindSpore开发之路(十七):静态图 vs. 动态图:掌握MindSpore的两种执行模式
  • centOS stream 9 安装rabbitMQ4.2
  • springboot基于Java的宠物用品系统的设计与实现
  • 深度学习毕设项目:基于YOLOv8模型监控视频中的车辆检测与识别应用
  • 电力系统暂态稳定性仿真:Matlab/Simulink 实战
  • 深度学习计算机毕设之基于YOLOv8模型监控视频中的车辆检测与识别应用
  • 【毕业设计】基于YOLOv8模型监控视频中的车辆检测与识别应用
  • 先序遍历、中序遍历和后序遍历【牛客tracker 每日一题】
  • 支付宝消费券回收新渠道,这样变现更划算 - 京顺回收
  • 项目1-C:手写体识别系统handwriting_ocr_system的深度学习系统_数据准备
  • ysyx-南大数电实验2,3,6,7,8
  • AI 论文写作工具精选10款,助力高效复现数学建模优秀论文并优化内容
  • No.867 ‘基于西门子S7-200 PLC和组态王自动售货机五种货物‘的概述
  • 持续集成CI
  • 深度测评!研究生必备AI论文平台TOP9:开题文献综述全解析
  • 如何成为一名渗透测试专家:核心技能与职业路径
  • 开源项目分享 : Gitee热榜项目 2026-1-1 日榜
  • 8款AI论文写作辅助工具对比:智能降重与高效创作效果评测
  • 亲测好用8个AI论文软件,专科生毕业论文轻松搞定!
  • 从理论到界面:六维坐标系与三值九层立体结构的工具化路径
  • 德诺超声波焊接机怎么选购才保证品质与性价比?