题意:

思路:

读完题目之后的第一思路就是用map将客户的id(string类型)与里程road(int类型)形成映射,然后直接用id查找添加里程或输出里程。但是400ms的限制妥妥的超时了。然后意识到要用哈希做,但是用哈希就有一点不好解决,每个客户的里程怎么保存,考虑了很长时间无果,搜了一下博客,发现可以用结构体来保存,平常用数组模拟链表的时候都是直接开的一维数组,所以当每个客户的信息多了后就没有结构体来的理解方便了。

第一次尝试:这个题N的上限是1e5,所以将每个客户的id转换成long long类型,然后对1e5+7取余,结果作为下标对应到数组里边存里程,完美过样例,提交果断WA。。。。。。。

第二次尝试:又看了一遍题目,思考了一下,哈希会出现冲突,需要处理冲突。所以数组模拟链表处理冲突,提交AC。

代码:

#include <iostream>
#include <queue>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <cstring>
#include <queue>
#include <map>
#include <vector>
#define INF 0x3f3f3f3f
#define FRE() freopen("in.txt","r",stdin)using namespace std;
typedef long long ll;
typedef pair<int,string> P;
const int maxn = 1e5+7;
int head[maxn];
struct Peo{char name[20];int road;int next;
}p[maxn];
int cnt = 0;int GetId(char* str) {ll res = 0;for(int i = 0; i<strlen(str); i++) {if(isdigit(str[i])) {res = res*10 + str[i]-'0';} else {res = res*10 + 10;}}return (int)(res%maxn);
}void Add_Node(char* str,int id,int temp){bool ok = true;for(int i = head[id]; ~i; i = p[i].next){if(strcmp(str,p[i].name) == 0){p[i].road += temp;ok = false;}}if(ok){int i = 0;p[cnt].road += temp;for(i = 0; str[i]; i++){p[cnt].name[i] = str[i];}p[cnt].name[i] = '\0';p[cnt].next = head[id];head[id] = cnt++;}return;
}bool ToFind(char* str,int id){for(int i = head[id]; i!=-1; i = p[i].next){if(strcmp(str, p[i].name) == 0){cout<<p[i].road<<endl;return true;}}return false;
}int main() {char str[20];int n,k,temp;cin>>n>>k;memset(head,-1,sizeof(head));for(int i = 0; i<n; i++) {cin>>str>>temp;if(temp<k) temp = k;int index = GetId(str);Add_Node(str,index,temp);}int m;cin>>m;for(int i = 0; i<m; i++) {cin>>str;int index = GetId(str);if(!ToFind(str,index)){printf("No Info\n");}}return 0;
}

哈希算法--7-13 航空公司VIP客户查询 (25 分)相关推荐

  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. 【PTA】7-1 航空公司VIP客户查询 (25 分)

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. MOSA 4600 Plus IP PBX FAQ(应用常见知识点-故障排除)(2)
  2. Java8 Stream 使用
  3. rhel7+apache+c cgi+动态域名实现web访问
  4. 转:Java中子类是否可以继承父类的static变量和方法而呈现多态特性
  5. 那英、那狗、那年、那事
  6. 郑大远程计算机应用基础第09,郑大远程教育《计算机应用基础》第09章在线测试...
  7. wordpress本地网站怎么搬到服务器,如何把wordpress从本地服务器迁徙到网站主机上...
  8. Oracle之分析函数
  9. 重庆江北鲁能旁边孩子学计算机,家长们注意!重庆多个区县中小学划片公布!这些学校民转公...
  10. ArcGIS中ObjectID,FID和OID字段区别
  11. 「解析」netron 模型可视化
  12. bshare分享 插件使用教程
  13. U盘常见病毒或木马解决篇
  14. LeetCode337打家劫社Ⅲ(树形动态规划)
  15. 《云计算核心技术剖析》迷你书连载三 – 云计算的商业模式
  16. 数字音频芯片--Digilent 公司PmodI2S芯片控制
  17. 清除浮动的几种方式,以及各自的优缺点
  18. 千寻位置 开发demo_专攻高精定位解决方案,「千寻位置」要解决自动驾驶车辆“我在哪儿”的问题...
  19. 世界杯主题系列-用Scratch制作足球比赛小游戏,源码分享啦
  20. 基于51单片机的8×8点阵屏demo

热门文章

  1. 对偶理论和灵敏度分析---线性规划的对偶理论
  2. C语言如何让一个函数返回多个值
  3. Axure 9 - 中继器使用
  4. 阿里巴巴逆向js,request模块获取数据
  5. 聊一聊期货反向跟单百科知识
  6. 计算机网络中的冗余部件大大降低了可靠,大学计算机第七篇练习题
  7. 十五、商城 - 品牌管理-AngularJS(3)
  8. vscode配置tpl文件关联html语言
  9. css中div超出自动换行
  10. sqoop将oracle数据导入到hive报错:Error: java.io.IOException: SQLException in nextKeyValue