7-14 电话聊天狂人(25 分)

给定大量手机用户通话记录,找出其中通话次数最多的聊天狂人。

输入格式:

输入首先给出正整数N(≤10​5​​),为通话记录条数。随后N行,每行给出一条通话记录。简单起见,这里只列出拨出方和接收方的11位数字构成的手机号码,其中以空格分隔。

输出格式:

在一行中给出聊天狂人的手机号码及其通话次数,其间以空格分隔。如果这样的人不唯一,则输出狂人中最小的号码及其通话次数,并且附加给出并列狂人的人数。

输入样例:

4
13005711862 13588625832
13505711862 13088625832
13588625832 18087925832
15005713862 13588625832

输出样例:

13588625832 3

利用map的性质来做这道题,起初用string,一直超时,改成long long就不超时了,长经验了

#include<bits/stdc++.h>
using namespace std;map<long long,int> p;
int main()
{int i,n,max;long long s;long long temp;scanf("%d",&n);max=0;for(i=0;i<2*n;i++){scanf("%lld",&s);if(!p.count(s)){p[s]=0;}p[s]++;if(p[s]>max)max=p[s];}map<long long,int>::iterator t;long long numb;int flag=0; int count=0;for(t=p.begin();t!=p.end();t++){if (t->second == max){count++;if(count==1)numb=t->first;} }cout<<numb;printf(" %d",max);if(count>1)printf(" %d",count);return 0;
}

如果把获取max的过程优化一下能到200ms以内

这道题利用普通数组结构体会超时,这是我第一次的代码

#include<bits/stdc++.h>
using namespace std;struct student
{char dianhua[12];
}stu[200002];bool cmp(student a,student b)
{if(strcmp(a.dianhua,b.dianhua)!=0)return strcmp(a.dianhua,b.dianhua)<0;
}map<string,int> p;
int main()
{int i,n,j,max;int count;int temp;int arr[200002];scanf("%d",&n);for(i=0;i<2*n;i++)arr[i]=1;for(i=0;i<2*n;i++){scanf("%s",stu[i].dianhua);}sort(stu,stu+2*n,cmp);for(i=0;i<2*n;i++){if(arr[i]==0)continue;for(j=i+1;j<2*n;j++){if(strcmp(stu[i].dianhua,stu[j].dianhua)==0){arr[i]++;arr[j]--;}}}max=0;for(i=1;i<2*n;i++){if(arr[i]>arr[max])max=i;     }count=0;temp=arr[max];for(i=0;i<2*n;i++){if(arr[i]==temp)count++;}printf("%s %d",stu[max].dianhua,arr[max]);if(count>1)printf(" %d",count);return 0;
}

PTA 7-14 电话聊天狂人(25 分)map的应用相关推荐

  1. 7-14 电话聊天狂人 (25 分)map做法 + 详解 + 思路分析

    7-14 电话聊天狂人 (25 分)map做法 1:题目 给定大量手机用户通话记录,找出其中通话次数最多的聊天狂人. 输入格式: 输入首先给出正整数N(≤10 ​5 ​​ ),为通话记录条数.随后N行 ...

  2. 7-1 电话聊天狂人 (25分) PTA 数据结构

    7-1 电话聊天狂人 (25分) 给定大量手机用户通话记录,找出其中通话次数最多的聊天狂人. 输入格式: 输入首先给出正整数N(≤10 ​5 ​​ ),为通话记录条数.随后N行,每行给出一条通话记录. ...

  3. 5-14 电话聊天狂人 (25分)/PTA

    5-14 电话聊天狂人   (25分) 给定大量手机用户通话记录,找出其中通话次数最多的聊天狂人. 输入格式: 输入首先给出正整数NN(\le 10^5≤10​5​​),为通话记录条数.随后NN行,每 ...

  4. 7-3 电话聊天狂人 (25 分)

    暑假字符串专题HBU程序设计训练营总结 ?点这里 7-3 电话聊天狂人 (25 分) 给定大量手机用户通话记录,找出其中通话次数最多的聊天狂人. 输入格式: 输入首先给出正整数N(≤10​5​​),为 ...

  5. 5-14 电话聊天狂人 (25分)

    5-14 电话聊天狂人 (25分) 给定大量手机用户通话记录,找出其中通话次数最多的聊天狂人. 输入格式: 输入首先给出正整数N(≤105≤ 10^5​​),为通话记录条数.随后N行,每行给出一条通话 ...

  6. 11-散列1 电话聊天狂人 (25 分) (C语言)

    浙大版<C语言程序设计实验与习题指导(第3版)>题目集 11-散列1 电话聊天狂人 (25 分) 二.题解 c代码 11-散列1 电话聊天狂人 (25 分) 给定大量手机用户通话记录,找出 ...

  7. 电话聊天狂人 (25 分)【简便解法】

    立志用最少的代码做最高效的表达 给定大量手机用户通话记录,找出其中通话次数最多的聊天狂人. 输入格式: 输入首先给出正整数N(≤10^5),为通话记录条数.随后N行,每行给出一条通话记录.简单起见,这 ...

  8. 11-散列1 电话聊天狂人 (25 分)

    给定大量手机用户通话记录,找出其中通话次数最多的聊天狂人. 输入格式: 输入首先给出正整数N(≤),为通话记录条数.随后N行,每行给出一条通话记录.简单起见,这里只列出拨出方和接收方的11位数字构成的 ...

  9. 7-14 电话聊天狂人 (25 分)

    给定大量手机用户通话记录,找出其中通话次数最多的聊天狂人. 输入格式: 输入首先给出正整数N(≤10​5​​ ),为通话记录条数.随后N行,每行给出一条通话记录.简单起见,这里只列出拨出方和接收方的1 ...

  10. 7-14 电话聊天狂人 (25分)

    给定大量手机用户通话记录,找出其中通话次数最多的聊天狂人. 输入格式: 输入首先给出正整数N(≤10^​5​),为通话记录条数.随后N行,每行给出一条通话记录.简单起见,这里只列出拨出方和接收方的11 ...

最新文章

  1. HashMap 的长度为什么是 2 的幂次方?
  2. R语言ggplot2可视化散点图并使用scale_y_log10函数配置Y轴对数坐标、使用ggforce包的facet_zoom函数将可视化结果中需要突出放大的区域进行放大(Zoom in)
  3. pytorch教程龙曲良46-55
  4. [推荐]ORACLE SQL:经典查询练手第三篇(不懂装懂,永世饭桶!)
  5. java 毕向东 内部类_java基础内部类(毕向东老师)
  6. MySQL定时备份(全量备份+增量备份)
  7. 在flask-sqlalchemy中使用max min avg方法
  8. 2c语言程序设计_大学生学C语言的理由是什么
  9. 环形线圈车辆检测器突破了LOOP-LOCK
  10. DBD::Oracle的库文件报失问题
  11. Android MVP模式 谷歌官方代码解读
  12. FreeBSD下使用Blogbio写cnblogs博客
  13. (附源码)计算机毕业设计SSM基于java语言的在线电子书阅读系统
  14. OpenCV图像各向异性滤波
  15. 【转】eclipse, Log4j配置(真心的详细~)
  16. 微信公众平台开发之微商城
  17. 关于计算机这一块儿的认识
  18. 星球专享 | 播放器 FFmpeg 依赖库的配置
  19. (贪心)CF1428E. Carrots for Rabbits
  20. 罕见病、新药最新研究进展(2021年9月)

热门文章

  1. 意识篇 —— 抓不住的600(管理多余的心智宽带)
  2. Python学习day2作业总结
  3. Zynq-Linux移植学习笔记之24-VPVN温度监测
  4. 笔记本Max-Q架构CPU到底有什么秘密
  5. DFS.04-海贼王之伟大航路
  6. 计算机文档xsl,跟我学XSL(一)——第一个XML文档
  7. 澳洲留学难吗 计算机排名澳洲达伦哥,#澳洲留学# 达伦哥全面解析澳洲DIPLOMA课程!...
  8. 机器学习学习笔记 --- 标称型数据和数值型数据
  9. luogu P1979 华容道
  10. 抽象类和接口的比较(重点)