7-45 航空公司VIP客户查询(PTA算法中文集)

2023-11-23 00:11

本文主要是介绍7-45 航空公司VIP客户查询(PTA算法中文集),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

7-45 航空公司VIP客户查询

分数 25

作者 DS课程组

单位 浙江大学

不少航空公司都会提供优惠的会员服务,当某顾客飞行里程累积达到一定数量后,可以使用里程积分直接兑换奖励机票或奖励升舱等服务。现给定某航空公司全体会员的飞行记录,要求实现根据身份证号码快速查询会员里程积分的功能。

输入格式:

输入首先给出两个正整数N(≤105)和K(≤500)。其中K是最低里程,即为照顾乘坐短程航班的会员,航空公司还会将航程低于K公里的航班也按K公里累积。随后N行,每行给出一条飞行记录。飞行记录的输入格式为:18位身份证号码(空格)飞行里程。其中身份证号码由17位数字加最后一位校验码组成,校验码的取值范围为0~9和x共11个符号;飞行里程单位为公里,是(0, 15 000]区间内的整数。然后给出一个正整数M(≤105),随后给出M行查询人的身份证号码。

输出格式:

对每个查询人,给出其当前的里程累积值。如果该人不是会员,则输出No Info。每个查询结果占一行。

输入样例:

4 500
330106199010080419 499
110108198403100012 15000
120104195510156021 800
330106199010080419 1
4
120104195510156021
110108198403100012
330106199010080419
33010619901008041x

输出样例:

800
15000
1000
No Info

first:

         unordered_map:


#include <iostream>
#include <cstring>
#include <algorithm>
#include <unordered_map>using namespace std;unordered_map<string,int> mp;int main()
{int n,t;scanf("%d%d",&n,&t);for(int i=0;i<n;++i){string id;int num;id.resize(18);scanf("%s%d",&id[0],&num);if(num < t)mp[id] += t;elsemp[id] += num;}int m;scanf("%d",&m);for(int i=0;i<m;++i){string id;id.resize(18);scanf("%s",&id[0]);if(mp[id] == 0)puts("No Info");elseprintf("%d\n",mp[id]);}return 0;
}

运行结果:

second:

        Tire树,字典树:

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cmath>using namespace std;const int maxn = 1e6;
int son[maxn][11],cnt[maxn];
int idx;int t;void insert(const char *id,int dis)
{int p = 0;for(int i=0;i<18;++i){int u;if(isalpha(id[i]))u = 10;elseu = id[i] - '0';if(son[p][u] == 0)son[p][u] = ++idx;p = son[p][u];}if(dis < t)cnt[p] += t;elsecnt[p] += dis;
}int query(const char *id)
{int p = 0;for(int i=0;i<18;++i){int u;if(isalpha(id[i]))u = 10;elseu = id[i] - '0';if(son[p][u] == 0)return 0;p = son[p][u];}return cnt[p];
}int main()
{int n;scanf("%d%d",&n,&t);char id[18];int dis;for(int i=0;i<n;++i){scanf("%s%d",id,&dis);insert(id,dis);}int m;scanf("%d",&m);for(int i=0;i<m;++i){scanf("%s",id);int res = query(id);if(res == 0)puts("No Info");elseprintf("%d\n",res);}return 0;}

运行结果:

 对比来看,还是unordered_map 更胜一筹!

字典树学习传送门:

835. Trie字符串统计,836。最大异或对,(Tire树,字典树)_疯疯癫癫才自由的博客-CSDN博客

这篇关于7-45 航空公司VIP客户查询(PTA算法中文集)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/413922

相关文章

Oracle查询优化之高效实现仅查询前10条记录的方法与实践

《Oracle查询优化之高效实现仅查询前10条记录的方法与实践》:本文主要介绍Oracle查询优化之高效实现仅查询前10条记录的相关资料,包括使用ROWNUM、ROW_NUMBER()函数、FET... 目录1. 使用 ROWNUM 查询2. 使用 ROW_NUMBER() 函数3. 使用 FETCH FI

数据库oracle用户密码过期查询及解决方案

《数据库oracle用户密码过期查询及解决方案》:本文主要介绍如何处理ORACLE数据库用户密码过期和修改密码期限的问题,包括创建用户、赋予权限、修改密码、解锁用户和设置密码期限,文中通过代码介绍... 目录前言一、创建用户、赋予权限、修改密码、解锁用户和设置期限二、查询用户密码期限和过期后的修改1.查询用

使用SQL语言查询多个Excel表格的操作方法

《使用SQL语言查询多个Excel表格的操作方法》本文介绍了如何使用SQL语言查询多个Excel表格,通过将所有Excel表格放入一个.xlsx文件中,并使用pandas和pandasql库进行读取和... 目录如何用SQL语言查询多个Excel表格如何使用sql查询excel内容1. 简介2. 实现思路3

Python中的随机森林算法与实战

《Python中的随机森林算法与实战》本文详细介绍了随机森林算法,包括其原理、实现步骤、分类和回归案例,并讨论了其优点和缺点,通过面向对象编程实现了一个简单的随机森林模型,并应用于鸢尾花分类和波士顿房... 目录1、随机森林算法概述2、随机森林的原理3、实现步骤4、分类案例:使用随机森林预测鸢尾花品种4.1

MySQL不使用子查询的原因及优化案例

《MySQL不使用子查询的原因及优化案例》对于mysql,不推荐使用子查询,效率太差,执行子查询时,MYSQL需要创建临时表,查询完毕后再删除这些临时表,所以,子查询的速度会受到一定的影响,本文给大家... 目录不推荐使用子查询和JOIN的原因解决方案优化案例案例1:查询所有有库存的商品信息案例2:使用EX

SpringBoot基于MyBatis-Plus实现Lambda Query查询的示例代码

《SpringBoot基于MyBatis-Plus实现LambdaQuery查询的示例代码》MyBatis-Plus是MyBatis的增强工具,简化了数据库操作,并提高了开发效率,它提供了多种查询方... 目录引言基础环境配置依赖配置(Maven)application.yml 配置表结构设计demo_st

Redis KEYS查询大批量数据替代方案

《RedisKEYS查询大批量数据替代方案》在使用Redis时,KEYS命令虽然简单直接,但其全表扫描的特性在处理大规模数据时会导致性能问题,甚至可能阻塞Redis服务,本文将介绍SCAN命令、有序... 目录前言KEYS命令问题背景替代方案1.使用 SCAN 命令2. 使用有序集合(Sorted Set)

MyBatis框架实现一个简单的数据查询操作

《MyBatis框架实现一个简单的数据查询操作》本文介绍了MyBatis框架下进行数据查询操作的详细步骤,括创建实体类、编写SQL标签、配置Mapper、开启驼峰命名映射以及执行SQL语句等,感兴趣的... 基于在前面几章我们已经学习了对MyBATis进行环境配置,并利用SqlSessionFactory核

PostgreSQL如何查询表结构和索引信息

《PostgreSQL如何查询表结构和索引信息》文章介绍了在PostgreSQL中查询表结构和索引信息的几种方法,包括使用`d`元命令、系统数据字典查询以及使用可视化工具DBeaver... 目录前言使用\d元命令查看表字段信息和索引信息通过系统数据字典查询表结构通过系统数据字典查询索引信息查询所有的表名可

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系