洛谷 CF670C Cinema

Description

  • 莫斯科在举办一场重要的有n 个不同国家的珂学家参与的国际会议,每个珂学家都只会一种语言。为了方便起见,我们规定一种语言用1 到10^9 的数来描述。
    在会议之后的晚上,珂学家们决定去看电影。他们去的电影院有m 场电影,每场有两个不同的数字,分别代表配音的语言和字幕的语言。如果一个珂学家能听懂配音,他会非常愉悦;如果能看懂字幕,他会比较满意。如果既看不懂也听不懂,他会很生气。
    珂学家们决定去看同一场电影,你必须帮助他们选择一场电影,让愉悦的人最多的前提下,比较满意的人最多。

Input

  • 输入格式: 第一行一个整数n(1≤n≤200000)表示珂学家个数。
    第二行n 个整数a1,a2,...,an(1≤ai≤109)表示珂学家们会的语言。
    第三行一个整数1≤m≤200000表示电影的场数。
    第四行m 个整数b1,b2,...,bn(1≤bj≤109)表示电影的配音用的语言。
    第五行m 个整数c1,c2,...,cn(1≤cj≤109)表示电影的字幕用的语言。

Output

  • 输出格式: 一个整数表示安排哪一场电影。 如果有多种情况,选择比较满意的方案输出。

Sample Input

3
2 3 2
2
3 2
2 3

Sample Output

2

题解:

  • 离散化。
  • 虽说电影可以用int范围内的数字表达出来,但数组不可能开INT_MAX大。所以继续观察题目,发现数据中最多只会出现m * 2 + n种语言,也就是最大60w种,数组可以开。然后就离散化,直接用桶来统计每种语言人的数量,再选择满足题意要求的电影。
#include <iostream>
#include <cstdio>
#include <algorithm>
#define N 400005
using namespace std;struct Obj {int x, y, z;} obj[N];
int n, m, cnt;
int a[N], b[N * 3], c[N * 3], d[N * 3];int read()
{int x = 0; char c = getchar();while(c < '0' || c > '9') c = getchar();while(c >= '0' && c <= '9') {x = x * 10 + c - '0'; c = getchar();}return x;
}int find(int x) {return lower_bound(b + 1, b + 1 + cnt, x) - b;
}bool cmp(Obj u, Obj v)
{if(u.x == v.x){if(u.y == v.y) return u.z < v.z;else return u.y > v.y;}else return u.x > v.x;
}int main()
{cin >> n;for(int i = 1; i <= n; i++) a[i] = read(), b[++cnt] = a[i];cin >> m;for(int i = 1; i <= m; i++) obj[i].x = read(), b[++cnt] = obj[i].x, obj[i].z = i;for(int i = 1; i <= m; i++) obj[i].y = read(), b[++cnt] = obj[i].y;sort(b + 1, b + 1 + cnt);cnt = unique(b + 1, b + 1 + cnt) - b - 1;for(int i = 1; i <= n; i++)c[find(a[i])]++, d[find(a[i])]++;for(int i = 1; i <= m; i++) obj[i].x = c[find(obj[i].x)], obj[i].y = d[find(obj[i].y)];sort(obj + 1, obj + 1 + m, cmp);cout << obj[1].z;return 0;
}

转载于:https://www.cnblogs.com/BigYellowDog/p/11270532.html

洛谷 CF670C Cinema相关推荐

  1. 洛谷-题解 P2672 【推销员】

    独门思路!链表加优先队列! 这题一望,贪心是跑不掉了,但是我贪心并不好,所以想到了一个复杂一些但思路更保稳的做法 思路: 1 因为是离线操作,所以我们可以倒着求,先求x=n的情况,因为那样直接就知道了 ...

  2. 洛谷 P1142 轰炸

    洛谷 P1142 轰炸 题目描述 "我该怎么办?"飞行员klux向你求助. 事实上,klux面对的是一个很简单的问题,但是他实在太菜了. klux要想轰炸某个区域内的一些地方,它们 ...

  3. 洛谷 P1387 最大正方形

    P1387 最大正方形 题目描述 在一个n*m的只包含0和1的矩阵里找出一个不包含0的最大正方形,输出边长. 输入输出格式 输入格式: 输入文件第一行为两个整数n,m(1<=n,m<=10 ...

  4. 洛谷P2763 试题库问题

    题目:https://www.luogu.org/problemnew/show/P2763 题目描述 «问题描述: 假设一个试题库中有n道试题.每道试题都标明了所属类别.同一道题可能有多个类别属性. ...

  5. 动态规划——洛谷_P1057传球游戏

    题目: 题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏.游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球, ...

  6. 洛谷P1417 烹调方案

    洛谷P1417 烹调方案 如果是一般的01背包的话 选的先后是没关系的 但是这题选的先后是有关系的,因为他的价值是随着时间而变化的, 而你的01背包是做不到先选2再选1的 那么我们就跟国王游戏一样 用 ...

  7. 记忆优化搜索(简单题)(洛谷P3183 [HAOI2016]食物链 )( P5635 【CSGRound1】天下第一 )

    昨天做了蓝桥杯的时候,发现自己对于记忆优化搜索甚是不熟悉,所以今天随便找了几个基础题做做,顺便写下两片题解,顺便用了一下devc++敲的代码,发现没有代码补全真的可以说是灰常难受了... 洛谷P318 ...

  8. 洛谷 - 试炼场(全部题目备份)

    整理的算法模板合集: ACM模板 目录 1.新手村 1 - 1 洛谷的第一个任务 1 - 2 顺序与分支 1 - 3 循环!循环!循环! 1 - 4 数组 1 - 5 简单字符串 1 - 6 过程函数 ...

  9. 洛谷专题训练 ——【算法1-1】模拟与高精度

    洛谷题单[算法1-1]模拟与高精度 ACM-ICPC在线模板 题单链接: [算法1-1]模拟与高精度 下面的这一坨都是洛谷题单上的东东 题单简介 恭喜大家完成了第一部分语言入门,相信大家已经可以使用 ...

最新文章

  1. 追溯了解Ubuntu之------基本命令操作(叁)
  2. 良田高拍仪集成vue项目
  3. MySQL事务隔离级别介绍
  4. Mpmovieplayercontroller 黑屏
  5. 让最新的 Android Q Beta 3 强制重启的 Project Mainline,到底是什么?
  6. 踩内存是什么意思啊_面试|搬了这么久的砖,居然还不知道什么“踩内存”
  7. 外刊评终极平板电脑十大功能:防眩目屏幕在列
  8. Linux下安装Octave
  9. 事件触发控制_基于事件触发机制的直流微电网多混合储能系统分层协调控制方法...
  10. 解决centos7安装wmwaretools找不到kernel header
  11. 关于Windows Boot Manager、Bootmgfw.efi、Bootx64.efi、bcdboot.exe 的详解
  12. 【Office】Word空格无法添加下划线
  13. HTTP协议和web服务技术---Apche配置
  14. 5G知识之5G技术指标、应用场景及相关技术(零星版)
  15. Python 解析爬取的车次数据(12306)
  16. 2020 年 7 月编程语言排行榜
  17. ipmitool 配置IP地址,账户,密码
  18. MPU9250的基本框架
  19. iTOP-4412开发板-10.1寸屏幕硬件修改支持排线和HDMI
  20. 微型计算机的输入设备教案,高中信息技术教案设计:微型计算机的输入 输入设备1.doc...

热门文章

  1. HMS 华为推送服务 推送绑定回执
  2. Mysql定时清除数据
  3. 66最短路径算法-佛洛伊德算法
  4. Java实现Redis过期数据清除
  5. Web前端期末大作业---HTML+CSS+JS实现的翻纸牌记忆游戏
  6. SourceTree+git结合gitee实现代码管理
  7. C# int 转 16进制字符
  8. RNN循环神经网络原理与示例
  9. 阿里云发布性能测试 PTS 2.0:低成本、高效率、多场景压测
  10. Java swing简易浏览器(其一)页面显示,超链接跳转与手动输入URL跳转