7-16 航空公司VIP客户查询(25 分)

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

输入格式:

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

输出格式:

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

输入样例:

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

输出样例:

800
15000
1000
No Info

真的是超级感动的!!做这题做了好久好久!!至少隔了好久才写出了这题,刚开始指针各种飞输入都输入不了,后来在hbz的帮助终于不瞎飞了nice  刚开始用 map水 水不了,只能用hash 嗯hash采用的是18位全部都要上代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const long long  maxn=1e5+7;
typedef struct node*  Node;
typedef long long ll;
struct node
{char str[20];int sum;Node next;node(){sum=0;next=NULL;}
};
struct mm
{Node ss[maxn];
};
struct mm* add(ll m,char s[], struct mm* oo,int t)
{Node tmp=(Node)malloc(sizeof(struct node));strcpy(tmp->str,s);tmp->sum=t;tmp->next=oo->ss[m];oo->ss[m]=tmp;return oo;
}
int find(char s[],ll m,struct mm* oo)
{int sum=0;if(oo->ss[m]==NULL)return -1;Node ff=oo->ss[m];while(ff){if(strcmp(ff->str,s)==0)sum=sum+ff->sum;ff=ff->next;}//对没错就是这部分wa死我了起码wa了10次要吐血了后来才发现!!!if(sum==0)return -1;else return sum;
}
int main()
{char s[20];int t;int n,m;scanf("%d%d",&n,&m);struct mm*  oo=(struct mm*)malloc(sizeof(struct mm));for(int i=0;i<maxn;i++){oo->ss[i]=(Node)malloc(sizeof(struct node));oo->ss[i]=NULL;}for(int i=0;i<n;i++){scanf("%s %d",s,&t);if(t<m) t=m;long long sum=0;for(int j=0;j<17;j++)sum=sum*10+(s[j]-'0');if(s[17]=='x')sum=sum+1e18;else sum=sum+s[17]-'0';sum=sum%maxn;oo=add(sum,s,oo,t);}int gg;scanf("%d",&gg);while(gg--){scanf("%s",s);long long sum=0;for(int j=0;j<17;j++)sum=sum*10+(s[j]-'0');if(s[17]=='x')sum=sum+1e18;else sum=sum+s[17]-'0';sum=sum%maxn;int kk;kk=find(s,sum,oo);if(kk==-1)printf("No Info\n");else printf("%d\n",kk);} return 0;
}

航空公司VIP客户查询(25 分)(Hash)相关推荐

  1. 7-15 航空公司VIP客户查询 (25分)(没用stl,哈希链地址法实现)

    7-15 航空公司VIP客户查询 (25分) 不少航空公司都会提供优惠的会员服务,当某顾客飞行里程累积达到一定数量后,可以使用里程积分直接兑换奖励机票或奖励升舱等服务.现给定某航空公司全体会员的飞行记 ...

  2. # 7-45 航空公司VIP客户查询 (25 分)

    7-45 航空公司VIP客户查询 (25 分) 不少航空公司都会提供优惠的会员服务,当某顾客飞行里程累积达到一定数量后,可以使用里程积分直接兑换奖励机票或奖励升舱等服务.现给定某航空公司全体会员的飞行 ...

  3. 7-45 航空公司VIP客户查询 (25 分)

    7-45 航空公司VIP客户查询 (25 分) 不少航空公司都会提供优惠的会员服务,当某顾客飞行里程累积达到一定数量后,可以使用里程积分直接兑换奖励机票或奖励升舱等服务.现给定某航空公司全体会员的飞行 ...

  4. 7-3 航空公司VIP客户查询 (25 分)C语言实现

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

  5. 【PTA】7-1 航空公司VIP客户查询 (25 分)

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

  6. 7-45 航空公司VIP客户查询 (25 分)(思路+详解+map用法解释+超时解决)兄弟们来呀冲压呀呀呀呀

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

  7. 航空公司VIP客户查询 (25 分)

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

  8. 7-75 航空公司VIP客户查询 (25分)

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

  9. PTA---航空公司VIP客户查询 (25分)---Stl-Map容器简单使用

    Map是STL的一个关联容器,它提供一对一(也就是一个键一个值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道.map内部自建一颗红黑树(一种非严格意义上的 ...

  10. 7-17 航空公司VIP客户查询 (10 分)

    7-17 航空公司VIP客户查询 (10 分) 不少航空公司都会提供优惠的会员服务,当某顾客飞行里程累积达到一定数量后,可以使用里程积分直接兑换奖励机票或奖励升舱等服务.现给定某航空公司全体会员的飞行 ...

最新文章

  1. CentOS7搭建lamp(module)并实现Xcache、https访问
  2. mysql导入数据表越来越慢,快速解决mysql导数据时,格式不对、导入慢、丢数据的问题...
  3. Linux系统CUDA10.2+CUDNN安装教程
  4. 华为oj----iNOC产品部-杨辉三角的变形 .
  5. 课时105.边框属性下(掌握)
  6. 普林斯顿公开课 算法1-5:算法理论
  7. 语义分割算法性能比较_AAAI 2020 | 商汤:新视频语义分割和光流联合学习算法
  8. Java :反射详解
  9. 2022电工杯:5G 网络环境下应急物资配送问题(优化)
  10. 老路用得上的商学课-61-80学习(读书)笔记
  11. Error while obtaining UI hierarchy XML file: com.android.ddmlib.
  12. 英语词汇篇 - 构词法
  13. AI如何挑战传统翻译
  14. 学习笔记2011.11.8-张飞-硬件开发与设计实战-门控开关设计
  15. 说说Object c的动态性
  16. Linux文件相关指令
  17. ThingsBoard调试部署和性能分析
  18. android 使用asm.jar将android手机屏幕投影到电脑上
  19. 【软件构造】数据类型、类型检查、可变不可变数据类型
  20. 什么是链接诱饵,链接诱饵建设思路与作用

热门文章

  1. 未来手机、电脑和网络将整合为一块
  2. 分享:架构师软技能之协商
  3. cocos2d-x自制工具07:打印cocos2d-x的节点树
  4. 一.Spring boot食用指南:HELLO WORLD
  5. dubbo学习--源码结构概述(5)
  6. [Misc]IE浏览器真正全屏幕操作技巧
  7. 当调用wcf, 小心返回值包含enum越界的错误。
  8. WCF开发之消息契约(MessageContract)
  9. C语言中 malloc,calloc 和 realloc 函数之间的区别
  10. docker容器跨宿主机通信