A1153
Description:
PAT注册卡包含以下内容:
- 第1位字母代表测试等级;
- 第2-4位表示考点号,从101-999;
- 第5-10位为测试时间yymmdd;
- 第11-13位为考生号,000-999
现给出一列注册卡号码以及考生的成绩,求不同的数据;
Input:
- 一个测试一个样例;
- 首行为两个正整数:卡片数量N<=1e4,询问数M<=100;
- 接下来N行,每行给出了卡号和成绩[0-100];
- 接下来M行询问;
反思:
- 写了两次,都是代码又臭又长,两个多小时还写不完,一堆问题
- 主要问题就在于,在一开始就把问题复杂化了,数据规模N<=1e4,O(M*N)可以满足要求,就没必要搞那些复杂的数据结构,直接二重循环做就OK,PAT考试中如果遇到这样的题目,一般不考察算法,能朴素就朴素,反正TLE不扣分可以再改,先拿大部分的分。
- 向柳神学习👍
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>
#include<algorithm>
#include<set>
#include<map>
#include<unordered_map>
#include<vector>
#include<queue>
using namespace std;
const int maxn = 1e4+5;
struct node{
string id;
int v;
};
bool cmp(node &a, node &b){
if(a