Cinema (CodeForces - 670C ,离散化入门)

CF670C Cinema 离散化 题目链接 http://codeforces.com/problemset/problem/670/C 分析 离散化语言编号,开数组统计会每种语言的人,然后遍历每部电影找答案即可。 AC代码 #include <cstdio> #include <algorithm> using namespace std; inline int read() { int num =... 阅读详情

一.题目链接:

CodeForces-670C

二.题目大意:

有 n 个人,每人会且仅会一种语言.  (n ≤ 2e5)

语言有各自的编号(≤ 1e9)

这些人去看电影,一共有 m 种电影. (m ≤ 2e5)

每个电影的声音与字幕语言都不一样.

若有人的语言与声音语言一样,则称这个人很高兴♂.

若有人的语言与字幕语言一样,则称这个人比较高兴.

现让你选择一场电影,使得此电影中,很高兴的人最多,在此条件下,再使比较高兴的人最多.

三.分析:

因为要统计每种语言的人数,而语言编号 ≤ 1e9,存不下.

所以考虑离散化.

可得离散化之后,语言总数最多 n + 2m 种.

详见代码.

四.代码实现:

#include <set>
#include <map>
#include <ctime>
#include <queue>
#include <cmath>
#include <stack>
#include <bitset>
#include <vector>
#include <cstdio>
#include <sstream>
#include <cstring>
#include <cstdlib>
#include <iostream>
#include <algorithm>
#define eps 1e-8
#define lc k * 2
#define rc k * 2 + 1
#define pi acos(-1.0)
#define ll long long int
using namespace std;

const int M = (int)2e5;
const ll mod = (ll)1e9 + 7;
const int inf = 0x3f3f3f3f;

int a[M + 5];
int b[M + 5];
int c[M + 5];
int lan[3 * M + 5];
int num[3 * M + 5];

int tofind(int x, int len)
{
    return lower_bound(lan + 1, lan + len + 1, x) - lan;
}

int discrete(int n, int m)
{
    int len = 0;
    for(int i = 1; i <= n; ++i)
        lan[++len] = a[i];
    for(int i = 1; i <= m; ++i)
    {
        lan[++len] = b[i];
        lan[++len] = c[i];
    }
    sort(lan + 1, lan + len + 1);
    return unique(lan + 1, lan + len + 1) - (lan + 1);
}

int main()
{
    int n;
    scanf("%d", &n);
    for(int i = 1; i <= n; ++i)
        scanf("%d", &a[i]);
    int m;
    scanf("%d", &m);
    for(int i = 1; i <= m; ++i)
        scanf("%d", &b[i]);
    for(int i = 1; i <= m; ++i)
        scanf("%d", &c[i]);
    int len = discrete(n, m);
    for(int i = 1; i <= n; ++i)
        num[tofind(a[i], len)]++;
    int ans = 1;
    int num1Max = 0;
    int num2Max = 0;
    for(int i = 1; i <= m; ++i)
    {
        int num1 = num[tofind(b[i], len)];
        int num2 = num[tofind(c[i], len)];
        if(num1 > num1Max || num1 == num1Max && num2 > num2Max)
        {
            ans = i;
            num1Max = num1;
            num2Max = num2;
        }
    }
    printf("%d\n", ans);
    return 0;
}

 

CodeForces - 670C Cinema【离散化】 【题目描述】 Moscow is hosting a major international conference, which is attended by n scientists from different countries. Each of the scientists knows exactly one language. For convenience, we enumerate ... 阅读详情

相关推荐

Media Player Classic - Home Cinema (mpc-hc)源代码

Media Player Classic Home Cinema,简称MPC-HC,是一款简洁的媒体播放器,使用十分广泛,这是它的原代码。

【离散化】 离散化及CodeForces 670C Cinema(/map)详解

题目链接:https://vjudge.net/problem/CodeForces-670C Moscow is hosting a major international conference, which is attended bynscientists from different countries. Each of the scientists knows exactly one language. For convenience, we enumerate all languages..

Qiuker_jl的博客 476

如何实现chrome谷歌浏览器多开(独立环境 独立cookie)

由于各种各样的原因,你可能需要在一个电脑登录某个平台,比如一个电脑登录3个公众号,或者3个知乎等等。最简单的方案是,直接安装3个不同的浏览器,比如一个谷歌浏览器,一个火狐浏览器,一个 Edge 浏览器。这个方案也能解决,但如果想多开10个呢?安装10个不同的浏览器也能解决,但感觉这样比较复杂,另外一方面安装太多的应用,会导致电脑卡顿。这里给大家介绍,我在 Win 和 Mac 系统下的躲开解决方案。Win 系统下的解决方案最为简单,原理就是给不同的谷歌浏览器,指向不同的用户存储路径即可。

lzqial1987的专栏 1万+

cinema[离散化]

传送门  #include&lt;bits/stdc++.h&gt; #define N 200005 using namespace std; int a[N],b[N],c[N],x[N*3],ans; int n,m,tot,siz,num[N],joy[N],sat[N]; int read(){ int cnt=0;char ch=0; while(!isdigit(ch))ch...

FSYo 的博客 302

实现高精度卷积混响--MATLAB仿真篇

一、前言 之前在STM32F407上现实了直播声卡,实现的经典Schroeder混响模型和Moorer混响模型,得到不错效果。后来得知卷积混响最为真实地表现空间的特性,所以也就尝试在MCU上实现一个高精度的卷积混响(卷积点数为32768),目前MCU出来的混响效果算得上一流水准,本人也在计划在ADI的21489或者SC584上更高精度的卷积混响。 二、卷积方式 1、conv1是使用MATLAB自带卷积函数conv 2、conv2和conv3是改进后卷积过程,具有减少运算量特点,方便嵌入式移植 clear;

Six44的博客 5078

使用同一个时钟源clki,做两个二分频时钟,得到div2_clk1和div2_clk2,这两个时钟都能跟源时钟clki同步,但是div2_clk1和div2_clk2的相位可能是相同的,也可能是反相

比如,触发器1的初始Q为0,而触发器2的初始Q为1(这可能由于芯片制造工艺的微小差异、上电过程的随机性、或没有全局复位信号导致)。这句话的意思是:虽然div2_clk1和div2_clk2都是由同一个妈妈(clki)生出来的,频率也都是妈妈的一半,但它们“起步”的时刻可能不同。所以,上面那段话是在提醒你注意这种潜在的、由分频产生的时钟相位关系的不确定性,这在异步电路设计或时钟管理中是必须考虑的关键因素。结果:div2_clk1和div2_clk2的波形完全重合,它们的上升沿和下降沿都发生在同一时刻。

m0_49540263的博客 591

Cinema||电影(离散化)

文章目录一、知识点介绍:离散化方法一:重复元素离散化后的数字相同注意事项方法二:重复元素离散化后的数字不相同二、题目描述分析步骤三、AC代码 一、知识点介绍:离散化 离散化(Discretization),把无限空间中有限的个体映射到有限的空间中去,以此提高算法的时空效率。通俗的说,离散化是在不改变数据相对大小的条件下,对数据进行相应的缩小。例如: 原数据:1, 999, 100000, 15;处理后:1,3,4,2。 原数据:{100, 200},{20, 50000},{1, 400};处理后:{3,4

jigsaw_zyx的博客 686

【保姆级教程】YOLOv8_Pose多目标+关键点检测:训练自己的数据集

【保姆级教程】YOLOv8_Pose多目标+关键点检测:训练自己的数据集

m0_51579041的博客 1万+

Cinema (map/离散化)

题目链接--------------------------------------------- 翻译:有n个人去看电影,电影一共有m种,n个人会不同的语言,电影的字母和声音是不同的语言,人听到会说的语言或者看到能看懂的语言字母都会很高兴,选择一部电影,让高兴的人最多。 第一种解法: 代码: #include <bits/stdc++.h> using namespace std; const int MAXN = 200010; int a[MAXN],b[MAXN],c[MAXN]

qq_43168836的博客 693

c\c++: Identifiers, modifier, qualifier, specifier, decorator; systemtap

文章目录参考英语含义在c、C++ 参考 c++ 标准 https://blog.youkuaiyun.com/tyronne/article/details/44016621 英语含义 modifier word or phrase that modifies (modify 2) another word or phrase 修饰语. qualifier (grammar) word, esp an adjective or adverb, that qualifies another word 修饰词; (尤指)形

mzhan017的博客 2428

R语言中的Gamma分布函数

在R语言中,我们可以使用最大似然估计(Maximum Likelihood Estimation,MLE)或最小二乘估计(Least Squares Estimation,LSE)等方法来估计Gamma分布的参数。本文介绍了在R语言中使用Gamma分布函数的基本操作,包括生成随机变量、计算概率密度函数和累积分布函数,以及参数估计和拟合。函数来生成Gamma分布的随机变量,计算概率密度函数(PDF)和累积分布函数(CDF),以及进行参数估计和拟合。要计算Gamma分布的累积分布函数(CDF),我们可以使用。

ByteWhiz的博客 1631

CodeForces - 670C Cinema(排序)

Codeforces-670C Cinema #include<iostream> #include<map> #define x first #define y second using namespace std; typedef pair<int,int>PII; const int N = 200010; map<int,int>s; PII p[N]; int a[N],b[N]; int n,m; int main() { scanf

00后的博客 228

QMK固件OLED显示屏配置教程:从零开始实现个性化键盘显示(实操部分)

本教程详细介绍了如何从零开始配置QMK固件的OLED显示屏,实现个性化键盘显示。首先,文章解释了OLED显示屏的基本概念及其在键盘中的应用,并介绍了I2C和SPI两种通信方式。接着,教程逐步指导用户如何在QMK固件中启用OLED功能,包括在rules.mk中启用OLED、在halconf.h和mcuconf.h中配置I2C功能,以及在config.h中设置I2C和OLED参数。最后,教程展示了如何在keymap.c中编写代码,实现OLED显示内容,并提供了进阶定制功能,如显示当前层信息、按键状态和QMK L

Despacito0o的博客 580

Codeforces DIV2 670C Cinema(离散化)

Codeforces DIV2 670C Cinema(离散化) 题意: 有n个科学家,每个科学家会一个语言。 有m个电影,每个电影有一个音频语言和一个字幕的语言 输出最多人能听懂的电影的索引,如果有多个电影有相同的人数能听懂,则输出在此条件下最多人能看懂的一个,如果还有多个电影符合,输出任意 思路: ​ 可以直接用map写 ​ 这里用离散化。数据范围2e5个科学家,且每个人只会一种语言。但是数据大小为1e9,所以我们可以离散化到一个计数数组中,然后再根据题意对其排序,如果lower_bound返回的下标等

Charles Liu 196

一步一步详解LSTM网络【从RNN到LSTM到GRU等,直至attention】

本文主要译至并加上了部分笔者的见解,对于全面理解LSTM有一定的帮助。

zik的博客 3078

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

[Codeforces 670C ]Cinema

本题思路是用标记数组存储各种语言对应的人数(“满足人数”实质为该语种的人数 ),然后通过枚举所有电影来获取音频满足人数最多的电影,如果存在多个满足音频人数最多的电影,则需要求其中字幕满足人数最多的电影。 然而问题是语言的范围过大,无法用数组存储,因此无法实现标记数组。 方案是用离散化压缩数组。离散化是利用一组数据中有效数据的大小关系来压缩存储空间的方法。本质是将数组中不存储数据的部分剔除,只存放有...

lznext的编程日记 220

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Cinema CodeForces - 670C(离散化)

题意:传送门 题解:每个语言用一个int范围内的整数表示,但是可以发现如果将科学家和电影所涉及的所有加起来无非最多也就是2∗m+n2*m+n2∗m+n中语言,那么将其离散化然后统计排序处理出最大序号即可。 附上代码: #include<iostream> #include<cstdio> #include<algorithm> using namespace s...

肘子的博客 273

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

算法进阶指南 CodeForces - 670C Cinema 离散化

莫斯科正在举办一个大型国际会议,有n个来自不同国家的科学家参会。 每个科学家都只懂得一种语言。 为了方便起见,我们把世界上的所有语言用11到109109之间的整数编号。 在会议结束后,所有的科学家决定一起去看场电影放松一下。 他们去的电影院里一共有m部电影正在上映,每部电影的语音和字幕都采用不同的语言。 对于观影的科学家来说,如果能听懂电影的语音,他就会很开心;如果能看懂字幕,他就会比较...

pxlsdz的博客 606

Codeforces 670C Cinema - 离散化

传送门 思路:将所有出现过的语言(语音、字幕、人们知道的)离散化一下,然后模拟即可。 AC Code: #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int N=200000+100; struct node{ ...

dmqqndlx85675的博客 153

Codeforces 670C Cinema

题目传送门:https://codeforces.com/problemset/problem/670/C 所谓离散化,就是将数值并不相邻的\(n\)个数据与\([1,n]\)之间的整数一一对应,并且相对大小关系依然满足原数列的相对大小关系。 比如\(1234,123,23,4245,2\)就可以转化成\(4,3,2,5,1\)。在原数列中两个值大小关系在新数列中依然不变。其实就相当于排...

aga28832的博客 90

Codeforces670C—— Cinema【map/离散化,排序】

C. Cinema time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output Moscow is hosting a major international conference, which is attended b...

xiang_hehe的博客 544

Cinema(离散化)(Codeforces670C)

C. Cinema time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard output Moscow is hosting a major international conference, which is attended by n scientist...

weixin_43438700的博客 350

CodeForces 670C Cinema(排序,离散化)

CodeForces 670C Cinema(排序,离散化)

Dacc123的博客 1444

CodeForces - 670C Cinema(离散化+排序/map,水题)

题目链接:点击查看 题目大意:有m部正在上映的电影,每部电影的语音和字幕都采用不同的语言,用一个int范围内的整数来表示语言。有n个人相约在一起去看其中一部电影,每个人只会一种语言,如果一个人能听懂电影的语音,他会很高兴,如果他能看懂字幕,他会比较高兴,如果语音和字母都看不懂,他会不开心,现在要求我们选择一部电影让这n个人一起看,使很高兴的人数最多,若答案不唯一,则在此条件下再让比较高兴的人最多...

Falcon的博客 791

Codeforces 670C C. Cinema (排序+离散化)

Moscow is hosting a major international conference, which is attended by n scientists from different countries. Each of the scientists knows exactly one language. For convenience, we enumerate all lan...

张洪基 316
上一篇: Inviting Friends (HDU - 3244,二分 + 完全背包)
下一篇: 七夕祭(算法竞赛进阶指南 P29,中位数 + 思维 ?)
The___Flash
博客等级 码龄8年 79粉丝 223原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值