AcWing103.电影——离散化

题目

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

每个科学家都只懂得一种语言。
为了方便起见,我们把世界上的所有语言用 1 到 109 之间的整数编号。

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

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

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

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

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

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

输入格式

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

第二行输入 n n n 个整数 a 1 , a 2 … a n a_1,a_2…a_n a1,a2an,其中 a i a_i ai 表示第 i i i 个科学家懂得的语言的编号。

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

第四行输入 m m m 个整数 b 1 , b 2 … b m b_1,b_2…b_m b1,b2bm,其中 b i b_i bi 表示第 i i i 部电影的语音采用的语言的编号。

第五行输入 m m m 个整数 c 1 , c 2 … c m c_1,c_2…c_m c1,c2cm,其中 c i c_i ci 表示第 i i i 部电影的字幕采用的语言的编号。

请注意对于同一部电影来说, b i ≠ c i b_i≠c_i bi=ci

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

输出格式

输出一个整数,代表最终选择的电影的编号。电影编号 1∼ m m m

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

数据范围

  • 1 ≤ n , m ≤ 200000 1≤n,m≤200000 1n,m200000
  • 1 ≤ a i , b i , c i ≤ 1 0 9 1≤a_i,b_i,c_i≤10^9 1ai,bi,ci109

输入样例

3
2 3 2
2
3 2
2 3

输出样例

2

分析

虽然语言的范围在 int 以内,但是这 m m m 部电影与 n n n 个人最多涉及 2 ∗ m + n 2 * m + n 2m+n 种语言。把所有电影和人涉及的语言放入一个数组中,排序并离散化,用一个 1 ~ 2 ∗ m + n 2 * m + n 2m+n 之间的整数代替每种语言。此时就可以用数组直接统计会上述每种语言的人的数量,从而选择满足题目要求的电影。

时间复杂度为 O ( ( n + m ) l o g ( n + m ) ) O((n+m)log(n + m)) O((n+m)log(n+m))

代码

#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;const int N = 2e5 + 50;
int a[N], b[N], c[N];
int cinema[N * 3];
int tot = 0;
int k = 0;
int ans[N * 3];//查询x映射为哪个1~k之间的整数
int query(int x) {return lower_bound(cinema + 1, cinema + 1 + k, x) - cinema;
}//离散化
void discrete() {//排序sort(cinema + 1, cinema + tot + 1);//去重,k为去重后的元素个数k = unique(cinema + 1, cinema + tot + 1) - (cinema + 1);
}int main() {int n, m;cin >> n;for (int i = 1; i <= n; i++) {cin >> a[i];cinema[++tot] = a[i];}cin >> m;for (int i = 1; i <= m; i++) {cin >> b[i];cinema[++tot] = b[i];}for (int i = 1; i <= m; i++) {cin >> c[i];cinema[++tot] = c[i];}//离散化discrete(); for (int i = 1; i <= n; i++) ans[query(a[i])]++; //统计每种语言会的科学家数//遍历所有电影//res 为最终结果,初始值为1,是因为如果没有符合条件的电影就随便选择一部,电影编号是从1开始的int res = 1, ans1 = 0, ans2 = 0;for (int i = 1; i <= m; i++) {int ansb = ans[query(b[i])]; //能听懂电影的语音的人数——>开心int ansc = ans[query(c[i])]; //能看懂字幕的人数--> 比较开心//当前电影比之前的电影开心的人多 或者 开心的人和之前的人一样,但是比较开心的比之前多,则选择当前电影if (ansb > ans1 || (ansb == ans1 && ansc > ans2)) { res = i;ans1 = ansb;ans2 = ansc;}}cout << res << endl;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/167540.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Interactive Visual Data Analysis

Words&Contents Home | Interactive Visual Data Analysis Book Outline 这本书对视觉、互动和分析方法进行了系统而全面的概述&#xff0c;作为数据可视化方面比较好的读物&#xff1b; 目录 Words&Contents Book Outline &#xff08;一&#xff09;Introduct…

AIGC 3D即将爆发,混合显示成为产业数字化的生产力平台

2023年&#xff0c;大语言模型与生成式AI浪潮席卷全球&#xff0c;以文字和2D图像生成为代表的AIGC正在全面刷新产业数字化。而容易为市场所忽略的是&#xff0c;3D图像生成正在成为下一个AIGC风口&#xff0c;AIGC 3D宇宙即将爆发。所谓AIGC 3D宇宙&#xff0c;即由文本生成3D…

VBA_MF系列技术资料1-227

MF系列VBA技术资料 为了让广大学员在VBA编程中有切实可行的思路及有效的提高自己的编程技巧&#xff0c;我参考大量的资料&#xff0c;并结合自己的经验总结了这份MF系列VBA技术综合资料&#xff0c;而且开放源码&#xff08;MF04除外&#xff09;&#xff0c;其中MF01-04属于定…

安装compiler version 5

这个compiler version5 在我的资源里面可以免费下载&#xff1b; 另外这个东西还需要安装&#xff0c;安装教程在这里&#xff1a;Keil最新版保姆教程&#xff08;解决缺少V5编译器问题&#xff09; - 哔哩哔哩 (bilibili.com) 看吧安装好了year

C语言链表使用

目录 双链表增删改查链表带功能函数 双链表增删改查 #include <stdio.h> #include <stdlib.h>// 双链表结点的定义 typedef struct DNode{int data;struct DNode *prev;struct DNode *next; } DNode;// 创建双链表 DNode *createDoublyLinkedList() {int n, i;pri…

【C语言】qsort的秘密

一&#xff0c;本文目标 qsort函数可以对任意类型数据甚至是结构体内部的数据按照你想要的规则排序&#xff0c;它的功能很强大&#xff0c;可是为什么呢&#xff1f; 我将通过模拟实现qsort函数来让你对这整个过程有一个清晰的深刻的理解。 二&#xff0c;qsort函数原型 v…

leetcode刷题详解一

算法题常用API std::accumulate 函数原型&#xff1a; template< class InputIt, class T > T accumulate( InputIt first, InputIt last, T init );一般求和的&#xff0c;代码如下&#xff1a; int sum accumulate(vec.begin() , vec.end() , 0);详细用法参考 lo…

【python海洋专题四十七】风速的风羽图

【python海洋专题四十七】风速的风羽图 图片 往期推荐 图片 【python海洋专题一】查看数据nc文件的属性并输出属性到txt文件 【python海洋专题二】读取水深nc文件并水深地形图 【python海洋专题三】图像修饰之画布和坐标轴 【Python海洋专题四】之水深地图图像修饰 【Pyth…

记一次linux操作系统实验

前言 最近完成了一个需要修改和编译linux内核源码的操作系统实验&#xff0c;个人感觉这个实验还是比较有意思的。这次实验总共耗时4天&#xff0c;从对linux实现零基础&#xff0c;通过查阅资料和不断尝试&#xff0c;直到完成实验目标&#xff0c;在这过程中确实也收获颇丰&…

pytorch模型优化简介,未完结版

如有帮助&#xff0c;点赞收藏关注&#xff01; 如需转载&#xff0c;请注明出处&#xff01; 今天来介绍torch模型中的优化器 优化是指在每个训练步骤中调整模型参数以减少模型误差的过程。 优化算法定义如何执行这个过程 所有优化逻辑都封装在优化器对象中。在这里&#xf…

【黑马甄选离线数仓day04_维度域开发】

1. 维度主题表数据导出 1.1 PostgreSQL介绍 PostgreSQL 是一个功能强大的开源对象关系数据库系统&#xff0c;它使用和扩展了 SQL 语言&#xff0c;并结合了许多安全存储和扩展最复杂数据工作负载的功能。 官方网址&#xff1a;PostgreSQL: The worlds most advanced open s…

音视频项目——RTSP服务器解析(1)

介绍 利用线程池&#xff0c;实现 RTSP 服务器的高并发请求处理。 RTSP 是音视频的控制视频的协议&#xff0c;如果您还不了解&#xff0c;可以看看之前我解析 RTSP 协议的文章。音视频协议解析(RTP/RTCP/RTSP/RTMP)——RTSP解析-CSDN博客 解析 我们先来看 RTP 的实现。RTP 是音…

Django框架之auth模块

目录 一、Auth模块引入 二、创建超级用户(管理员) 三、依赖于auth_user表完成登录注册功能 【1】基础登陆 【2】保存用户状态 【3】登录后跳转 (1) 登录后才能访问页面 -- 局部配置 (2) 登录后才能访问页面 -- 全局配置 (3) 小结 三、修改密码 四、注销 五、注册…

Springboot将多个图片导出成zip压缩包

Springboot将多个图片导出成zip压缩包 将多个图片导出成zip压缩包 /*** 判断时间差是否超过6小时* param startTime 开始时间* param endTime 结束时间* return*/public static boolean isWithin6Hours(String startTime, String endTime) {// 定义日期时间格式DateTimeFormatt…

【数据结构】—搜索二叉树(C++实现,超详细!)

&#x1f3ac;慕斯主页&#xff1a;修仙—别有洞天 ♈️今日夜电波&#xff1a;消えてしまいそうです—真夜中 1:15━━━━━━️&#x1f49f;──────── 4:18 &#x1f504; ◀️ ⏸ ▶️…

函数计算的新征程:使用 Laf 构建 AI 知识库

Laf 已成功上架 Sealos 模板市场&#xff0c;可通过 Laf 应用模板来一键部署&#xff01; 这意味着 Laf 在私有化部署上的扩展性得到了极大的提升。 Sealos 作为一个功能强大的云操作系统&#xff0c;能够秒级创建多种高可用数据库&#xff0c;如 MySQL、PostgreSQL、MongoDB …

js实现获取原生form表单的数据序列化表单以及将数组转化为一个对象obj,将数组中的内容作为对象的key转化为对象,对应的值转换为对象对应的值

1.需求场景 哈喽 大家好啊&#xff0c;今天遇到一个场景&#xff0c; js实现获取原生form表单的数据序列化表单以及将数组转化为一个对象obj&#xff0c;将数组中的内容作为对象的key转化为对象&#xff0c;对应的值转换为对象对应的值 数组对象中某个属性的值&#xff0c;转…

元宇宙现已开放!

在 2023 年 11 月 3 日 The Sandbox 首个全球创作者日上&#xff0c;The Sandbox 联合创始人 Arthur Madrid 和 Sebastien Borget 宣布元宇宙已开放&#xff0c;已创作完整体验的 LAND 持有者可以自行将体验发布至 The Sandbox 地图上。 精选速览 LAND 持有者&#xff1a;如果…

在JVM中 判定哪些对象是垃圾?

目录 垃圾的条件 1、引用计数法 2、可达性分析 3、强引用 4、软引用 5、弱引用 6、虚引用 判断垃圾的条件 在Java虚拟机&#xff08;JVM&#xff09;中&#xff0c;垃圾收集器负责管理内存&#xff0c;其中的垃圾收集算法用于确定哪些对象是垃圾&#xff0c;可以被回收…

VBA即用型代码手册之工作薄的关闭保存及创建

我给VBA下的定义&#xff1a;VBA是个人小型自动化处理的有效工具。可以大大提高自己的劳动效率&#xff0c;而且可以提高数据的准确性。我这里专注VBA,将我多年的经验汇集在VBA系列九套教程中。 作为我的学员要利用我的积木编程思想&#xff0c;积木编程最重要的是积木如何搭建…