题目

RC-v7 燕归来

无可奈何花落去,似曾相识燕归来。

研究燕子随季节迁徙的科学家们,给一批燕子做了标记,每只被标记的燕子有一个独特的编号。等它们归来时,再根据标记检查有哪些燕子没有回来,同时有哪些燕子是从别处飞来的,身上带了别人家的标记。

输入格式:

输入首先给出飞走的燕子的信息:在第一行给出不超过 105 的正整数 N,随后 N 行,每行给出一只飞走的燕子的编号。题目保证编号不重复。

随后是飞回的燕子的信息,首先是一个不超过 105 的非负整数 M,随后 M 行,每行给出一只飞回的燕子的编号。题目保证编号不重复。

编号为长度不超过 8 的、由英文字母和数字组成的字符串。

输出格式:

首先输出没有回来的燕子的信息,格式为:

Missing: X
ID[1]
...
ID[X]

其中 X 为没有回来的燕子的数量,ID[i]i = 1, ..., X)为按字典序递增输出的这些燕子的编号。

然后输出新增燕子的信息,格式同上,只是把 Missing 换成 New

如果 X 为零,则对应情况下输出 All Back(都回来了)或 All Known(都认识)。

输入样例 1:

5
CN009
CN018
CN001
CN005
CN000
6
US981
CN018
CN000
AUS83
CN005
RU996

输出样例 1:

Missing: 2
CN001
CN009
New: 3
AUS83
RU996
US981

输入样例 2:

5
CN009
CN018
CN001
CN005
CN000
5
CN018
CN001
CN005
CN009
CN000

输出样例 2:

All Back
All Known

题解

概述
这道题思路不难,只是要注意AC时间,如果是常规做法,后几个测试点可能会超时,这里采用数组计数,设置一个足够大(一定要足够大,否则会段错误)的整型数组,将旧燕子的编号分段,截取后面的数字作为数组下标储存,设置一个状态,这里设置为1,例如编号为CN001的燕子,数组状态为ch[1]=1,表示这只燕子放走了,处理完放走的燕子后,处理飞回的燕子。这里就不能采用数组法了,因为飞回的燕子编号千奇百怪的,用旧燕子标记判断其是否为新增燕子,如果不是,就将数组中旧燕子的状态改变即可,如果是就直接放到容器里,用sort函数进行字典序排序就行了。最后根据题目要求输出即可,注意当新增燕子为0时需要输出"All Known"。

#include <bits/stdc++.h>using namespace std;int ch[100001000]; //储存飞走燕子信息
vector<string> v3; //储存新飞来燕子信息void huan(string s, int a) //处理每一只飞走燕子,储存信息
{string z;int k = 0;z = s.substr(a, s.length() - a);for (int i = 0; i < z.length(); i++){k += (z[z.length() - i - 1] - '0') * pow(10, i);}ch[k] = 1;
}int main()
{int len = 0;string biaoji; //飞走燕子编号中的英文字母string jiu, s;int miss = 0, New = 0, n, m, N;cin >> n;N = n;int j = 1;while (n){cin >> jiu;if (n == N) //因为飞走燕子编号英文字母都一样,所以求一次就好{for (int i = 0; i < jiu.length(); i++){if (jiu[i] >= '0' && jiu[i] <= '9'){j = i;break;}}}n--;huan(jiu, j);}biaoji = jiu.substr(0, j);len = jiu.length();cin >> m;while (m--){cin >> s;if (s.substr(0, j) == biaoji && (s[j] >= '0' && s[j] <= '9')){string z;int k = 0;z = s.substr(j, s.length() - j);for (int i = 0; i < z.length(); i++){k += (z[z.length() - i - 1] - '0') * pow(10, i);}if (ch[k] == 1) //如果飞回的燕子是放走的燕子{ch[k] = 2;miss++;}else //如果不是{v3.push_back(s);New++;}  }else{v3.push_back(s);New++;}}miss = N - miss; //没回来的燕子数量if (miss == 0 && New == 0){cout << "All Back" << endl;cout << "All Known";}else{if (miss != 0){cout << "Missing: " << miss << endl;int y = 0;while (miss){if (ch[y] == 1){cout << biaoji;cout << setw(len - j) << setfill('0') << y << endl; //根据编号长度前补零miss--;}y++;}}if (New != 0){cout << "New: " << New << endl;sort(v3.begin(), v3.end()); //将新增燕子进行字典序排列for (int i = 0; i < v3.size(); i++){cout << v3[i] << endl;}}if (New == 0) //这一步别忘了,如果没有新增燕子,有两分的测试点{cout << "All Known";}}
}

2022 RoboCom 世界机器人开发者大赛-高职组(省赛)RC-v7 燕归来相关推荐

  1. 2022 RoboCom 世界机器人开发者大赛-高职组 国赛(RC-v3 智能护理中心统计)

    RC-v3 智能护理中心统计 题意: 给出各管理节点的关系,和每个管理节点的照护老人数量. 两种操作:1. 转院. 2. 查询 该管理节点以下总的老人人数. 知识点: 树. #include<b ...

  2. 2022 RoboCom 世界机器人开发者大赛-高职组(省赛)

    RC-v1 您好呀 分数 5 本届比赛的主题是"智能照护",那么就请你首先为智能照护机器人写一个最简单的问候程序 -- 无论遇见谁,首先说一句"您好呀~". 输 ...

  3. 2022 RoboCom 世界机器人开发者大赛-本科组(省赛)挨打记录

    总结: 在pintia平台做题千万得早点做会的题,要不然等到最后全是疯狂提交撞数据骗分的,最后五分钟,提交一次题要等前面6900多人,根本来不及. 多看板子少摸鱼 学校实验室是真滴爽 做题连接 登录签 ...

  4. 2022 RoboCom 世界机器人开发者大赛-本科组(省赛) CAIP 完整版题解

    文中代码均可AC, 有任何问题欢迎在评论区留言讨论 文章目录 RC-u1 不要浪费金币 题解 AC代码 RC-u2 智能服药助手 题解 AC代码(带注释) RC-u3 跑团机器人 题解 AC代码(详细 ...

  5. 2022 RoboCom 世界机器人开发者大赛-本科组(省赛)-- 第三题 跑团机器人 (已完结)

    其它题目 题目 RC-u3 跑团机器人 在桌面角色扮演游戏(TRPG,俗称"跑团")中,玩家需要掷出若干个骰子,根据掷出的结果推进游戏进度.在线上同样可以跑团,方法是由玩家们向机器 ...

  6. 2022 RoboCom 世界机器人开发者大赛-本科组(省赛)

    文章目录 1.不要浪费金币 2.智能服药助手 3.跑团机器人 4.攻略分队 5.树与二分图 1.不要浪费金币 哲哲最近在玩一个游戏,击杀怪物能获得金币 -- 这里记击杀第 i 个怪物获得的金币数量为 ...

  7. 2021 RoboCom 世界机器人开发者大赛-高职组(初赛)(python版)

    人生得意须尽欢,莫因代码愁断肠!!! 渴望答案的友友们,如你所见,它来了!!! 注:初学者_零不是很会哟!所以呢,如果友友们有更好的代码可以带题号的将代码打在评论区,大家一起学习!!! 7-1:  机 ...

  8. 2022 RoboCom 世界机器人开发者大赛-本科组(省赛)T4, T5

    RC-u4 攻略分队 题意 把 6 支队伍分成两组,把所有的可能方案按照下面的筛选方式找到最佳方案: 思路 比较简洁的一个方法是,将每一条方案中的元素都存储到结构体中,然后在结构体中重载运算符,根据给 ...

  9. 2022 RoboCom 世界机器人开发者大赛-本科组(省赛)RC-u4 攻略分队 (已完结)

    其它题目 题目 RC-u4 攻略分队 副本是游戏里的一个特色玩法,主要为玩家带来装备.道具.游戏资源的产出,满足玩家的游戏进程. 在 MMORPG<最终幻想14>里,有一个攻略人数最大达到 ...

最新文章

  1. Spring servlet
  2. windows mobile shell API
  3. linux shell编程语句if、case.
  4. TCP/IP详解--第十三章
  5. Airbnb个性化搜索服务架构
  6. AndroidStudio中提示:Couldn‘t find meta-data for provider with authority
  7. 关于定点机中的比例因子
  8. 安卓逆向_4 --- Java 学习
  9. PHPStorm开启Debug
  10. 解决linux vi报错 Can‘t open file for writing
  11. vue-cli项目在IE下运行钩子函数抛出异常“ReferenceError: “Promise”未定义“”的解决办法
  12. Fail to queue the whole FAL gap in dataguard一例
  13. Java代码执行Linux脚本
  14. element-ui对话框fullscreen.lock使用
  15. python3.5安装PyHook3
  16. ftp 服务器 性能,Xlight FTP服务器网络性能测试
  17. 常见的网站推广方法有哪些?
  18. linux连接多个显示器,如何在Linux Ubuntu中使用多个和外部显示器 | MOS86
  19. 网上的名字测试打分软件准吗,王浩骅:不建议用网络软件测算名字
  20. 怎样进行股票量化对冲策略分析?

热门文章

  1. 中国石油大学《社会学概论》第二次在线作业
  2. xubuntu20.04+virtualbox6.1+winxp安装小结
  3. iPortal地图大屏自定义组件示例--立体地图
  4. LCMs (莫比乌斯反演)
  5. Caff-Opencv——图像分类(01)
  6. 学习软件测试的第十九天
  7. NRF52832开发:射频驱动
  8. TaiChi Lang 让Python代码提速100倍!(高性能计算、图形学、仿真等领域;加速 Python 中计算密集任务程序;希望使用 Python 开发但部署到其它环境)
  9. log4j2日志配置不生效
  10. CSS颜色:RGB颜色/HEX颜色/HSL颜色(网页颜色完全总结)