PAT 天梯赛 L1-005. 考试座位号 【MAP标记】

本文介绍了一种使用C++实现的试机座位查询系统,通过结构体和映射(map)来存储考生信息,实现从试机座位快速查找考生号及考试座位的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目链接

https://www.patest.cn/contests/gplt/L1-005

题意
有一个 考生号,一个试机座位,一个考试座位,给出试机座位,查询 考生号和考试座位

思路
MAP + 结构体

AC代码

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <deque>
#include <vector>
#include <queue>
#include <string>
#include <cstring>
#include <map>
#include <stack>
#include <set>
#include <cstdlib>
#include <ctype.h>
#include <numeric>
#include <sstream>
using namespace std;

typedef long long LL;
const double PI = 3.14159265358979323846264338327;
const double E = 2.718281828459;
const double eps = 1e-6;
const int MAXN = 0x3f3f3f3f;
const int MINN = 0xc0c0c0c0;
const int maxn = 1e5 + 5;
const int MOD = 1e9 + 7;
struct node
{
    int num;
    string ID;
}temp;

int main()
{
    int n;
    int i;
    int vis;
    map <int, node> m;
    m.clear();
    cin >> n;
    for (i = 0; i < n; i++)
    {
        cin >> temp.ID;
        scanf("%d%d", &vis, &temp.num);
        m[vis] = temp;
    }   
    cin >> n;
    for (i = 0; i < n; i++)
    {
        scanf("%d", &vis);
        cout << m[vis].ID << " " << m[vis].num << endl;
    }
}
对于L1-005考试座位号安排的问题,这里提供一些相关信息。 PAT(Programming Ability Test)考生在参与测试时会被给予两个不同的座位编号:一个是用于熟悉环境及检查设备是否正常的试机座位;另一个则是正式考试期间使用的考试座位。当考生到达考场并且完成签到手续之后,会被告知自己的试机座位位置,在此阶段可以确认计算机和其他设施能否正常使用。一旦试机环节完毕,系统将会告知每位考生其对应的考试座位的具体位置以便于接下来的正式考核过程。 迟到的考生可能会错过试机流程,这种情况下工作人员通常会有相应的措施来帮助这些学生尽快找到他们的考试座位以确保不影响答题进度。 为了更好地理解如何处理与L1-005相关的编程挑战或者模拟此类场景下的算法逻辑,请参考下面提供的代码样例,它实现了查询功能的一个简单版本: ```java import java.util.HashMap; import java.util.Map; import java.util.Scanner; public class ExamSeatArrangement { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int N = Integer.parseInt(scanner.nextLine()); Map<String, String> seatMap = new HashMap<>(); for (int i = 0; i < N; ++i){ String line = scanner.nextLine(); // Assuming input format is "Exam Seat,Practice Seat" String[] seats = line.split(","); if(seats.length == 2) seatMap.put(seats[1], seats[0]); } while (scanner.hasNextLine()){ String practiceSeat = scanner.nextLine().trim(); if(practiceSeat.isEmpty()) break; System.out.println(seatMap.getOrDefault(practiceSeat, "Not Found")); } scanner.close(); } } ``` 这段代码读取一系列试机座位和对应考试座位之间的映射关系,并能够接受单个试机座位作为输入返回匹配的考试座位。如果找不到给定的试机座位,则输出"Not Found"表示未发现相应记录。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值