problem

莫斯科正在举办一个大型国际会议,有n个来自不同国家的科学家参会。

每个科学家都只懂得一种语言。

为了方便起见,我们把世界上的所有语言用1到109之间的整数编号。

在会议结束后,所有的科学家决定一起去看场电影放松一下。

他们去的电影院里一共有m部电影正在上映,每部电影的语音和字幕都采用不同的语言。

对于观影的科学家来说,如果能听懂电影的语音,他就会很开心;如果能看懂字幕,他就会比较开心;如果全都不懂,他就会不开心。

现在科学家们决定大家看同一场电影。

请你帮忙选择一部电影,可以让观影很开心的人最多。

如果有多部电影满足条件,则在这些电影中挑选观影比较开心的人最多的那一部。

输入格式
第一行输入一个整数n,代表科学家的数量。

第二行输入n个整数a1,a2…an,其中ai表示第i个科学家懂得的语言的编号。

第三行输入一个整数m,代表电影的数量。

第四行输入m个整数b1,b2…bm,其中bi表示第i部电影的语音采用的语言的编号。

第五行输入m个整数c1,c2…cm,其中ci表示第i部电影的字幕采用的语言的编号。

请注意对于同一部电影来说,bi≠ci。

同一行内数字用空格隔开。

输出格式
输出一个整数,代表最终选择的电影的编号。

如果答案不唯一,输出任意一个均可。

数据范围
1≤n,m≤200000,
1≤ai,bi,ci≤109
输入样例:
3
2 3 2
2
3 2
2 3
输出样例:
2

  • 有1e9种不同的语言
  • 有n个科学家,m场电影,每场电影有语音和字幕,共n+2m种语言
  • 求选一部电影能让最多的科学家听懂语音(相同情况下取字母最多的)

solution

  • 虽然map很香,不过离散化模板可以学习一下
#include<bits/stdc++.h>
using namespace std;
const int maxn = 2e5+10;int a[maxn], b[maxn], c[maxn], sum[maxn];int cnt, arr[maxn*3];
void discrete(){sort(arr+1,arr+cnt+1);cnt = unique(arr+1,arr+cnt+1)-arr-1;
}
int query(int x){return lower_bound(arr+1,arr+cnt+1,x)-arr;
}int main(){//inputios::sync_with_stdio(false);int n;  cin>>n;for(int i = 1; i <= n; i++){cin>>a[i];  arr[++cnt] = a[i];}int m;  cin>>m;for(int i = 1; i <= m; i++){cin>>b[i];  arr[++cnt] = b[i];}for(int i = 1; i <= m; i++){cin>>c[i];  arr[++cnt] = c[i];}//solvediscrete();int ans = 0, bt = -1, ct = -1;for(int i = 1; i <= n; i++)sum[query(a[i])]++;//会每种语言的人数for(int i = 1; i <= m; i++){//更新能被看懂最多的电影int x = query(b[i]), y = query(c[i]);if(sum[x]>bt){ans = i; bt = sum[x]; ct = sum[y];}else if(sum[x]==bt && sum[y]>ct){ans = i; bt = sum[x]; ct = sum[y];}}cout<<ans<<endl;return 0;
}

【AcWing】103. 电影(离散化)相关推荐

  1. AcWing 103. 电影(离散化 + 排序)

    传送门 #include <bits/stdc++.h>using namespace std; const int MAXN = 2e5 + 10; unordered_map<i ...

  2. AcWing 103. 电影

    题目 莫斯科正在举办一个大型国际会议,有n个来自不同国家的科学家参会. 每个科学家都只懂得一种语言. 为了方便起见,我们把世界上的所有语言用1到109之间的整数编号. 在会议结束后,所有的科学家决定一 ...

  3. Cinema||电影(离散化)

    文章目录 一.知识点介绍:离散化 方法一:重复元素离散化后的数字相同 注意事项 方法二:重复元素离散化后的数字不相同 二.题目描述 分析 步骤 三.AC代码 一.知识点介绍:离散化 离散化(Discr ...

  4. 0x05.基本算法 - 排序

    目录 1.AcWing 103. 电影 2.AcWing 104. 货仓选址 声明: 本系列博客是<算法竞赛进阶指南>+<算法竞赛入门经典>+<挑战程序设计竞赛>的 ...

  5. 【AcWing 学习】基础算法

    AcWing 基础算法 排序 快速排序 归并排序 堆排序 冒泡排序 选择排序 插入排序 希尔排序 计数排序 桶排序 基数排序 二分 整数二分 浮点数二分 高精度 高精度加法 高精度减法 高精度乘法 高 ...

  6. 《算法竞赛进阶指南》0.5排序

    103. 电影 莫斯科正在举办一个大型国际会议,有n个来自不同国家的科学家参会. 每个科学家都只懂得一种语言. 为了方便起见,我们把世界上的所有语言用1到109之间的整数编号. 在会议结束后,所有的科 ...

  7. Python Flask 构建微电影视频网站

    "轻"是Flask的精髓,小型项目快速开发,大型项目毫无压力 1-1 课程导学及介绍 1-2 Windows环境搭建 2-2 Mac OS环境搭建 2-3 第一Flask程序 3- ...

  8. python视频网站项目_[项目实战] Python Flask构建微电影视频网站

    注:本站源码仅做学术研究,自娱自乐使用,不得用于任何的非法商业用途 由于版权原因.本站将无限期停止微擎模块资源下载如果有任何侵犯您权益的内容请联系小站删除哦.小站一定会积极配合的. 课程目录: (下载 ...

  9. python视频网站项目_Python Flask 项目实战—构建微电影视频网站

    下单后联系在线客服索取下载链接 课程章节 第1章 课程介绍 1-1 课程导学 1-2 课程介绍 第2章 准备开发环境 2-1 windows环境搭建 2-2 mac os环境搭建 2-3 virtua ...

最新文章

  1. 2017瞻博网络年会隆重召开 重点发力电信和OTT两大市场
  2. 如何高效的利用博客园?
  3. Java-Map从入门到性能分析2【HashMap的底层原理、构造方法优化、常用方法】
  4. (Eclipse打包问题)Export aborted because fatal lint er
  5. BZOJ #2874. 训练士兵(差分+离散化+主席树)
  6. 魔方微店商城系统 v1
  7. 清远机器人编程_「新时代好少年」清远学生研发“灭火装置”获实用新型专利...
  8. JavaScript随机排序算法1
  9. 魔天记服务器维护,魔天记3月23日维护公告
  10. 《打造七星级团队》观后感
  11. Java前后端分离项目部署
  12. coverity持续集成_美国新思科技发布2017年Coverity Scan报告
  13. win10 cmd切换目录
  14. python制作音乐播放器_python实现音乐播放器 python实现花框音乐盒子
  15. 西安三本计算机专业可报院校,西安三本大学前十名, 西北大学现代学院仅第四...
  16. 0x01位运算——a^b
  17. OSDU(Open Group Open Subsurface Data Universe)数据平台研究笔记
  18. 【论文笔记】Learning to Count in the Crowd from Limited Labeled Data
  19. 牛客网 Wannafly挑战赛27 蓝魔法师
  20. 扩展欧几里德求逆元模板

热门文章

  1. Python typing —— 类型提示(type hint)
  2. 益智小游戏(app)
  3. 数论基本定理及应用(四)
  4. matlab 信号与系统(一)—— 上采样(Upsampling)和下采样(Downsampling)
  5. 数论基本定理及应用(二)
  6. PB级(大数据)的来源
  7. C++基础——C++风格的类型转换(static_cast、const_cast、dynamic_cast、reinterpret_cast)
  8. 华为交换机关机方法_华为交换机常用的三种vlan划分方法~
  9. python代码-你见过哪些令你瞠目结舌的 Python 代码技巧?
  10. python安装-在Python中安装包的三种方法