D. Optical Experiment

news2024/11/19 20:27:20

 

题意:

 

D. 光学实验

时间限制:5秒

内存限制:256兆字节

输入:标准输入

输出:标准输出

Phunsuk Wangdu教授进行了一些关于光线的实验。n条光线的实验装置如下:

有一个长方形盒子,在相对的两面上有恰好n个孔。所有光线从第一面的孔进入,从盒子的另一面的孔出射。每个孔只能进入或出射一条光线。这些孔位于一条直线上。

Wangdu教授正在向学生展示他的实验。他展示了这样的情况:有些光线的组合,其中每一条光线与组合中的其他光线都相交。一个好奇的学生问教授:“老师,是否存在一些光线的组合,其中所有光线都与组合中的每一条光线相交?我们能够确定这种组合中光线的最大数量吗?"

Wangdu教授陷入了困境,因为他知道你很聪明,所以他请你帮助他。

输入

第一行包含一个整数n(1 ≤ n ≤ 106),表示光线的数量。第二行包含n个不同的整数。第i个整数xi(1 ≤ xi ≤ n)表示第i条光线从第i个孔进入。类似地,第三行包含n个不同的整数。第i个整数yi(1 ≤ yi ≤ n)表示第i条光线从第i个孔出射。所有光线从1到n编号。

输出

输出包含一个整数,表示光线中最大的相互相交的组合中光线的数量。

示例
输入
5
1 4 5 2 3
3 4 2 1 5
输出
3
输入
3
3 1 2
2 3 1
输出
2
注意
对于第一个测试用例,上述图中所示。第一个测试用例的输出是3,因为光线1、4和3是彼此相交的光线,即1与4和3相交,3与4和1相交,4与1和3相交。因此,该组合中的每条光线都与其他光线相交。不存在满足上述条件的包含超过3条光线的组合。

思路:

所选光线按射入洞口编号排序后,其射出洞口编号必然倒序,故对所有光线按射入洞口编号排序后对其射出洞口编号求一个LIS即可

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e6+10;
const int INF=2e18;
int a[N],dp[N];
int n;
int LIS()
{
    for(int i=1;i<n;i++)dp[i]=INF;
    dp[0]=a[0];
    int len=1;
    for(int i=1;i<n;i++)
        if(a[i]>dp[len-1])dp[len++]=a[i];
        else dp[lower_bound(dp,dp+n,a[i])-dp]=a[i]; 
    return len;
}
pair<int,int>f[N];
void solve(){
	cin>>n;
	for(int i=0;i<n;i++){
		int x;
		cin>>x;
		a[x-1]=i;
	}
	for(int i=0;i<n;i++){
		f[i].first=a[i];
	}
	for(int i=0;i<n;i++){
		int x;
		cin>>x;
		a[x-1]=i;
	}
	for(int i=0;i<n;i++) f[i].second=a[i];
	sort(f,f+n);
	for(int i=0;i<n;i++){
		a[i]=f[n-i-1].second;
	}
	cout<<LIS()<<"\n";
}
signed main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0); 
	int t=1;
	while(t--){
		solve();
	}
} 

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

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

相关文章

windows的环回网卡(loopback adapter) 安装方法

0.说明&#xff1a;windows的环回网卡(loopback adapter)的作用&#xff1a; microsoft loopback adapter就是安装在本机上的一块虚拟网卡&#xff0c;它跟本机上的其它物理网卡、和物理网卡连接的网络是没有关系的&#xff0c;你可以理解成这块网卡上的网线接到了另外一个空白…

葡萄风味有奥秘,农科院用机器学习揭示基因渐渗过程

内容一览&#xff1a;基因渐渗与葡萄的驯化、遗传改良密切相关。先前研究揭示了欧洲栽培葡萄中&#xff0c;野生葡萄基因渐渗的基因组信号&#xff0c;但尚未深入研究这些渐渗事件发生的时间、方式、基因组模式和生物学效应。本文中&#xff0c;中国农业科学院深圳农业基因组研…

【杂谈理解】电源芯片设计选型

前言 看B站UP主达尔闻关于电源视频&#xff0c;做的笔记。下述内容中&#xff0c;如有芯片比较皆是性能层面的比较&#xff0c;暂未考虑成本。且老师在视频中&#xff0c;也多次建议说&#xff0c;可以多关注比较新兴的芯片&#xff0c;一般会是有更好的性能。讲的真的很好&…

【MySQL】MySQL数据库,RDBMS 术语,使用说明和报错解决的详细讲解

作者简介&#xff1a; 辭七七&#xff0c;目前大一&#xff0c;正在学习C/C&#xff0c;Java&#xff0c;Python等 作者主页&#xff1a; 七七的个人主页 文章收录专栏&#xff1a; 七七的闲谈 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01;&#x1f496;&#x1f…

转型升级必备:智能客服外包服务的应用实践

随着信息技术的不断发展&#xff0c;人工智能技术在各个领域的应用越来越广泛&#xff0c;其中智能客服外包服务是一个备受关注的领域。智能客服外包服务是指将企业的客服业务交由专业的第三方服务商处理&#xff0c;并运用人工智能技术提供更高效、更优质的客服服务。本文将从…

FineReport学习2

当原始数据中存储的字段不适宜展现在报表上&#xff1b;或原始数据在数据查询时不易修改&#xff0c;但对显示在报表中的值有要求&#xff1b;或需要根据不同的原始数据在报表中显示不同的值时&#xff0c;就可以利用数据字典做巧妙的转化 设置数据字典 数据列的过滤&#xff…

解决程序错误‘找不到vcruntime140.dll,无法继续执行代码’的全面解决方案

在运行某些应用程序或代码时&#xff0c;你可能会遇到一个错误提示&#xff1a;“找不到vcruntime140.dll,无法继续执行代码”。其实遇到这种情况不需要担心&#xff0c;我们有多种方法可以进行解决&#xff0c;今天小编就来给大家详细的说说vcruntime140.dll文件的相关问题&am…

ABIDE Preprocessd 结构态MRI数据集介绍及下载(FreeSurfer流程)

引言 本博客书接上文&#xff1a;ABIDE Preprocessed 结构态MRI数据集介绍及下载&#xff0c;写前一篇的时候因为觉得FreeSurfer流程处理完成的数据过于庞杂&#xff0c;想要从中获得需要的ROI层面形态学特征过于复杂&#xff0c;所以只是简单说明了其下载方式&#xff0c;并未…

DAY34——贪心part3

1. class Solution {public int largestSumAfterKNegations(int[] nums, int K) {// 将数组按照绝对值大小从大到小排序&#xff0c;注意要按照绝对值的大小nums IntStream.of(nums).boxed().sorted((o1, o2) -> Math.abs(o2) - Math.abs(o1)).mapToInt(Integer::intValue)…

8.12 IP协议与ethernet协议

目录 IP协议作用和意义 计算机网络体系结构 网络互联使用路由器 IP网的意义 分组在互联网中的传送 分组传输路径 ​编辑 IP 数据报首部格式 IP数据报的格式 IP数据报首部的固定部分中的各字段 IP 数据报分片 IP数据报首部中的协议 以太网协议 IP协议作用和意义 数…

13年测试老鸟经验,性能测试-性能调优各个方法详细,一篇通透...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 WebServer服务优化…

数学建模算法(基于matlab和python)之 变步长求积公式与龙贝格算法(3/10)

实验目的及要求&#xff1a; 深刻认识数值积分法的意义&#xff1b;明确数值积分精度与步长的关系&#xff1b;根据定积分的计算方法&#xff0c;可以考虑二重积分的计算问题。 实验内容&#xff1a; 1、利用quad函数作变步长方法计算定积分的近似值&#xff0c;计算精度为。 …

Axure制作一个滑动验证组件

一、案例效果 1、默认显示滑块、背景及提示文案&#xff1b; 2、滑块仅允许向右水平拖动&#xff0c;且不能超过背景区域&#xff1b; 3、滑块移动过程中&#xff0c;左侧区域样式跟随变化&#xff0c;右侧区域保持不变&#xff1b; 4、滑块为未拖动到最右侧时释放&#xff…

射频功率放大器——如何选择合适的射频功率放大器

射频功率放大器是一种用于增强射频信号的电子设备。在选择合适的射频功率放大器时&#xff0c;需要考虑多个因素&#xff0c;包括应用场景、频率范围、增益、带宽、噪声等。下面是一些关于如何选择合适的射频功率放大器的基本步骤&#xff1a; 1、确定应用场景和需求&#xff1…

CANoe使用记录(五):CANoe 如何调用诊断功能/ZCANPRO的诊断功能

目录 1、概述 2、Canoe调用诊断服务 2.1、查看是否存在license 2.2、新建工程步骤分解 3、ZCANPRO的诊断功能 1、概述 有那么一部分时候&#xff0c;需要通过Canoe来实现简单的诊断服务&#xff0c;当然大部分时候通过Canoe进行测试需要通过CAPL脚本实现复杂的UDS诊断服务。…

Unity WebAR插件记录

1.Imagine WebAR - World Tracker&#xff08;Unity商店&#xff09; 使用此插件为Web浏览器创建增强现实体验。借助出色的6DOF跟踪功能&#xff0c;将游戏对象固定在地板或任何表面上。支持所有主流的手机浏览器。 2.Imagine WebAR - Image Tracker&#xff08;Unity商店&…

JavaScript ES8新特性

文章目录 导文异步函数&#xff08;Async/Await&#xff09;&#xff1a;Object.getOwnPropertyDescriptors()方法&#xff1a;字符串填充方法&#xff08;String padding&#xff09;&#xff1a;共享内存与原子操作&#xff08;Shared Memory and Atomics&#xff09;&#x…

基于原生 js 实现今日新闻网站

完整资料进入【数字空间】查看——baidu搜索"writebug" 一、今日新闻网站设计报告 1.1 1 设计思路 该网站设计大部分都是基于原生 js 实现。基本思想为首先将基本的页面架构包括 header&#xff0c;导航条写好。之后根据后台 PHP 请求接口请求返回 JSON 格式数据后…

【Java核心技术】Java基本语法

Java基本语法 1、关键字与保留字关键字的定义和特点保留字的定义 2、标识符标识符的定义定义合法标识符规则Java中的名称命名规范 3、变量变量的概念变量的作用使用变量注意变量的分类整数变量&#xff1a;byte、short、int、long浮点类型&#xff1a;float、double字符类型&am…

Vue组件间通信的几种方式

Vue组件间通信的几种方式 0、前言1、props/$emit&#xff08;父子&#xff09;2、ref / $refs&#xff08;父子&#xff09;3、provide / inject&#xff08;深度父子&#xff09;4、EventBus 事件总线 &#xff08;任意两个组件通讯&#xff09;5、$attrs / $listener&#xf…