PAT (Basic Level) Practice 乙级1041-1045
读取输入数据:首先读取考生信息,包括准考证号、试机座位号和考试座位号。将这些信息存储在一个哈希表中,哈希表的键是试机座位号,值是一个包含准考证号和考试座位号的对。 处理查询:读取待查询的试机座位号,逐个查找哈希表,输出对应的准考证号和考试座位号。 读取输入:首先读取N,然后读取N行的考生信息。每行的信息拆分成准考证号、试机座位号和考试座位号,并存储到哈希表中。 查询处理:读取M个试机座位号,逐个查找哈希表,输出对应的准考证号和考试座位号。
发布日期:2025-05-01 22:51:19
浏览次数:13
分类:精选文章
本文共 1474 字,大约阅读时间需要 4 分钟。
为了解决这个问题,我们需要根据给定的试机座位号,找出对应的考试座位号。我们可以使用哈希表来存储每个试机座位号对应的准考证号和考试座位号,这样查询时可以非常高效。
方法思路
这种方法的时间复杂度是O(N + M),其中N是考生信息的数量,M是待查询的数量。由于N和M的范围都不大,这种方法非常高效。
解决代码
#include#include #include using namespace std;int main() { int n; cin >> n; unordered_map > seat_map; for (int i = 0; i < n; ++i) { string line; getline(cin, line); size_t first_space = line.find(' '); size_t second_space = line.find(' ', first_space + 1); string z = line.substr(0, first_space); string s = line.substr(first_space + 1, second_space - first_space - 1); string k = line.substr(second_space + 1); int s_num = stoi(s); int k_num = stoi(k); seat_map[s_num] = make_pair(z, k_num); } int m; cin >> m; for (int i = 0; i < m; ++i) { string line; getline(cin, line); size_t pos = line.find(' '); string ss = line.substr(0, pos); int s_num = stoi(ss); auto it = seat_map.find(s_num); if (it != seat_map.end()) { string z = it->second.first; int k = it->second.second; cout << z << ' ' << k << endl; } } return 0;}
代码解释
这种方法确保了高效查询和处理,能够快速解决问题。
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2026年05月26日 13时19分26秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
phpWhois 项目推荐
2023-02-28
phpwind部署问题
2023-02-28
PHP__call __callStatic
2023-02-28
php一句话图片运行,【后端开发】php一句话图片木马怎么解析
2023-02-28
php上传文件找不到临时文件夹
2023-02-28
PHP下curl用法分析
2023-02-28
php与web服务器关系
2023-02-28
redis事务操作
2023-02-28
PHP中array_merge和array相加的区别分析
2023-02-28
PHP中dirname(__FILE__)的意思
2023-02-28
PHP中extract()函数的妙用
2023-02-28
PHP中implode()和explode()
2023-02-28
PHP中serialize和json序列化与反序列化的区别
2023-02-28
Redis事务处理
2023-02-28
php中使用ajax进行前后端json数据交互
2023-02-28
Redis事务和锁操作
2023-02-28
PHP中如何得到数组的长度
2023-02-28
php中引入文件几种方式的区别
2023-02-28
PHP中把stdClass Object转array的几个方法
2023-02-28
PHP中替换换行符
2023-02-28