POJ 1631 Bridging signals(LIS 二分 快速方法)

基于深度强化学习的柔性作业车间动态调度 在追求敏捷和灵活的生产调度方面,处理不可预测的动态事件的能力变得越来越重要。与此同时,生产系统中的网络-物理融合产生了大量需要实时挖掘和分析的工业数据。为了便于这种实时控制,本研究提出了一种分层分布式的体系结构来解决动态柔性作业车间调度问题。采用双深度Q网络算法(DDQN)训练调度智能体,捕捉生产信息与调度目标之间的关系,为具有恒定任务到达的柔性作业车间实时做出调度决策。为了处理动态调度中问题的可变规格说明,提出了专门的状态和动作表示法。此外,还提出了一种代理奖励整形技术(surrogate reward 阅读详情

Language:
Bridging signals
Time Limit: 1000MS Memory Limit: 10000K
Total Submissions: 10762 Accepted: 5899

Description

'Oh no, they've done it again', cries the chief designer at the Waferland chip factory. Once more the routing designers have screwed up completely, making the signals on the chip connecting the ports of two functional blocks cross each other all over the place. At this late stage of the process, it is too expensive to redo the routing. Instead, the engineers have to bridge the signals, using the third dimension, so that no two signals cross. However, bridging is a complicated operation, and thus it is desirable to bridge as few signals as possible. The call for a computer program that finds the maximum number of signals which may be connected on the silicon surface without crossing each other, is imminent. Bearing in mind that there may be thousands of signal ports at the boundary of a functional block, the problem asks quite a lot of the programmer. Are you up to the task? 

A typical situation is schematically depicted in figure 1. The ports of the two functional blocks are numbered from 1 to p, from top to bottom. The signal mapping is described by a permutation of the numbers 1 to p in the form of a list of p unique numbers in the range 1 to p, in which the i:th number specifies which port on the right side should be connected to the i:th port on the left side.Two signals cross if and only if the straight lines connecting the two ports of each pair do.

Input

On the first line of the input, there is a single positive integer n, telling the number of test scenarios to follow. Each test scenario begins with a line containing a single positive integer p < 40000, the number of ports on the two functional blocks. Then follow p lines, describing the signal mapping:On the i:th line is the port number of the block on the right side which should be connected to the i:th port of the block on the left side.

Output

For each test scenario, output one line containing the maximum number of signals which may be routed on the silicon surface without crossing each other.

Sample Input

4
6
4
2
6
3
1
5
10
2
3
4
5
6
7
8
9
10
1
8
8
7
6
5
4
3
2
1
9
5
8
9
2
3
1
7
4
6

Sample Output

3
9
1
4

Source



由于数据太大,必须要用快速方法,我今天看这个看了好久,记住一点,c[i]代表长度为 i 的字串中,最后位最小的值


seach就是找寻以a[i]结尾的序列会有多长,然后就更新


代码:



#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<queue>
#include<stack>
#include<vector>

#define L(x) (x<<1)
#define R(x) (x<<1|1)
#define MID(x,y) ((x+y)>>1)

#define eps 1e-8
using namespace std;
#define N 100005

int a[N],c[N],n;

int seach(int len,int x)
{
	int le=0,ri=len,ans=0,mid;
	while(le<=ri)
	{
		mid=(le+ri)>>1;
		if(c[mid]<x)
		{
			ans=mid;
			le=mid+1;
		}
        else
			ri=mid-1;
	}
    return ans;
}
int main()
{
	int i,j,t;
	scanf("%d",&t);
	while(t--)
	{
		scanf("%d",&n);
		for(i=1;i<=n;i++)
			scanf("%d",&a[i]);

		int len=1;
		c[1]=a[1];
		for(i=2;i<=n;i++)
		{
			if(a[i]>c[len])
			{
				j=len++;
			}
			else
			  j=seach(len,a[i]);
			c[j+1]=a[i];
		}
     printf("%d\n",len);
	}
   return 0;

}





【示波器专题】无源探头的常用附件 使用探头进行测试,我们不仅要知道探头的原理,还需要了解探头的常用附件及其使用方式,这样才能在尽可能在测试中提高效率且减少出错的概率 阅读详情

相关推荐

从逻辑门到RISC-V指令:ALU设计实战与Verilog实现

本文详细介绍了从逻辑门到RISC-V指令集的ALU设计实战与Verilog实现方法。通过构建1位ALU并扩展至64位,深入解析了RISC-V指令集的算术逻辑单元实现技巧,包括加法器设计、零标志检测和溢出检测等关键功能。文章还分享了Verilog代码优化、流水线设计和常见问题调试的实用经验,为开发者提供了一套完整的ALU设计解决方案。

weixin_29214335的博客 185

Bridging signals(最长上升子序列)

Bridging signals 题目 “哦,不,他们又做到了”,Waferland 芯片厂的首席设计师喊道。布线设计人员再次完全搞砸了,使连接两个功能块端口的芯片上的信号到处都是相互交叉的。在这个过程的后期阶段,重做路由的成本太高了。相反,工程师必须使用第三维来桥接信号,以免两个信号交叉。然而,桥接是一个复杂的操作,因此希望桥接尽可能少的信号。迫切需要一种计算机程序,以找到可以在硅表面上连接而不相互交叉的最大数量的信号。记住在功能块的边界处可能有数千个信号端口,这个问题对程序员提出了很多要求。你能胜任

weixin_58110654的博客 316

手把手教你为ArduPilot添加自定义飞行模式:以自动巡检航线为例

本文详细介绍了如何为开源飞控ArduPilot添加自定义飞行模式,并以自动巡检航线为例,提供了从状态机设计、代码实现到地面站集成的完整开发指南。通过七步法手把手教学,帮助开发者深入理解飞控核心逻辑,实现无人机自主执行复杂巡检任务,满足行业应用定制需求。

weixin_29306875的博客 134

POJ 1631 Bridging signals

Bridging signalsTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 6001 Accepted: 3285DescriptionOh no, theyve done it again, cries the chief designer a

bobten2008的专栏 1030

Redmi K30 5G刷 LineageOS17.1

前言 买手机前就观望了Xdr论坛,看Redmi K30 5G有LineageOS17.1的Rom并且还挺热,应该还不错,就入手了。晚上就刷机了。买了小米就是为了折腾,为发烧而生。 在开始前还请先安装adb工具,因为我自己是做Android开发的,自带adb,不会安装的可以百度“Android安装adb工具”。还有下载刷机文件:百度云 密码:2a0f 刷机的系统是刚买来的低版本,没有升级过Rom,如果高版本慎刷。 还有这个Rom是5G版本的,4G版本的不要刷。 建议没有刷过机器的最好不要尝试,变砖后果自负。

u010436867的博客 1万+

告别手动画图!用Cadence SKILL写一个参数化电感PCell(附完整代码)

本文详细介绍了如何使用Cadence SKILL语言开发参数化电感PCell,实现电感版图的自动化生成。通过动态调整线宽、圈数等几何参数,自动创建端口并进行工艺规则校验,大幅提升高频电路设计效率。附完整代码示例,帮助工程师快速掌握PCell开发技巧。

weixin_30684743的博客 366

Bridging signals

在O(n^2)的算法中:创建一个一维数组a[j],dir[],p[j]表示序列的元素,dir[i]表示以第i个元素结尾的序列中的最长下降子序列,初始化为1,对于一个dir[i],遍历前面的每个元素j,如果a[j]>a[i]且dir[j]>=dir[i],那么dir[j]就要加1,在这里,遍历前面的每个元素j,寻找此前最大的子序列时间复杂度为O(n),如果我们在一个有序的序列中查找此前最大的序列长度

u013780740的专栏 550

QT+QTimer+QThread实现线程内的定时任务并且和主线程进行交互

在制作qt软件时,我们经常会用到qtimer定时器以及将其在非主线程中进行使用,甚至有的时候还需要和主线程进行交互。我总结了两种用法,仅供参考。以上即为QTimer和QThread联合使用的学习记录。

u011826081的博客 5685

Bridging signals(最长上升子序列)

描述传送门:hdu-1950  ’Oh no, they’ve done it again’, cries the chief designer at the Waferland chip factory. Once more the routing designers have screwed up completely, ma...

x_Armin的博客 287

Python 爬虫实战:抓取百科网站上某个词条的详细信息

百科网站(如维基百科)为用户提供了丰富的知识内容,涵盖了从历史、文化到科技等几乎所有领域的知识。对于需要大量数据进行分析、研究或机器学习项目的开发者而言,抓取这些网站的数据显得尤为重要。通过编写一个 Python 爬虫,我们能够轻松地抓取百科网站上的某个词条及其详细信息,从而获取并整理这些知识内容。本篇博客将深入介绍如何通过 Python 编写爬虫来抓取百科网站(如维基百科)的某个词条的详细信息,包括标题、正文内容、参考文献等。requests:发送 HTTP 请求,获取页面内容。

2201_76125261的博客 1669

【法如faro】三维激光软件Scene2023数据处理(自动配准并转换坐标)流程

法如faro Scene2023数据处理(自动配准并转换坐标)的主要流程为:新建项目、导入数据、处理、自动注册、坐标系转换、模型导出立和面模型导出等。

智慧空间实验室 2382

HDU 1950 POJ 1631 Bridging signals【LIS,二分优化】

LIS模板题,二分优化

AC_Dreameng 761

【异常】Openclaw Gateway进程异常停止问题分析与解决方案

本文分析了Gateway服务异常停止的问题,提出了三种解决方案。核心问题是缺乏进程守护和自动恢复机制,导致服务崩溃后无法自行重启。推荐方案是使用PM2进程管理工具(方案1),提供进程监控、自动重启和开机自启功能。替代方案包括自定义守护脚本(方案2)和supervisord管理(方案3)。这些方案都能有效解决当前服务脆弱性问题,显著提升服务可用性,其中PM2方案成熟度高、配置简单,是首选解决方案。实施后可将服务从人工干预转变为自动恢复,确保业务连续性。

奶爸的编程之路,也就一周冷个三天 455

poj 1631 Bridging signals LIS 最长非递减子序列

poj 1631 Bridging signals LIS 最长非递减子序列

阑珊记忆 474

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

计算机控制技术及应用

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

POJ 1631 Bridging signals 最长上升子序列小结 LIS的O(nlogn)算法

POJ 1631 Bridging signals 题目分析: 题目要求避免相交,则可转化为对给定的序列求最长上升子序列。 首先使用了dp来求解,复杂度为O(n*n),在题目的数据范围下超时了… #include<iostream> #include<stdio.h> #include<algorithm> using namespace std; int dp...

RPG_Zero的博客 305

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

POJ 1631 - Bridging signals ( LIS )

题意 有p条线路,它们有可能相交。现在让你去掉一些线路,使得剩下的线不相交且线最多 ( p < 40000 ) 思路 为使得连线不相交, 必须选择一个上升的连接序列, 而求剩下的线不相交且最多就是求LIS ( 最长上升子序列 ) 由于p最大达40000, 1000 ms 肯定不能用复杂度为O(n*n)的朴素动态规划,会超时...

a7152326的博客 161

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Poj 1631 Bridging signals(二分+DP 解 LIS)

题意:题目很难懂,题意很简单,求最长递增子序列LIS。 分析:本题的最大数据40000,多个case。用基础的O(N^2)动态规划求解是超时,采用O(n*log2n)的二分查找加速的改进型DP后AC了。 在基础的动态规划解法中,由于动态规划的无后效性(对于每个阶段来说,它以前的各阶段状态无法直接影响它未来的决策,只能间接地通过当前状态来影响),当我们考察第i+1个元素的时候,...

a136358的博客 174

最长上升子序列(LIS)POJ 1631 Bridging Signals

POJ 1631题目大意如下: 给定N个测试,每个测试的数据:第一行输入P,表示有P个连接,接下来的P个数据是按照下标从1到P排列的,每个下标i对应一个连接数a[i],表示i和a[i]是连接的,生动点就如下图所示,问题要求给出一个数字,表示的是在这P个连接数里,没有互相交叉的最大组合数。 从上图看的话,其实只是有助于理解题目意思,但是要解决问题的话,这个图还是会带来干扰。肯定不

kornberg_fresnel的博客 572

poj 1631 Bridging signals (LIS 最长递增子序列 DP-二分)

题目:http://poj.org/problem?id=1631 思路:LIS 最长递增子序列,如果用一般的动态规划算法,复杂度是O(n^2),题目的数据规模下会超时,采用二分的思想:复杂度是O(nlogn) 代码: 首先是一般的DP:  #include #include #include using namespace std; const int MAX=40001; int dp

R_xiaozhu_Q的专栏 1539

poj1631Bridging signals ( LIS)

题目比较长 , 就是给出 一些点的连线, 要求留下最多的线让他们不相交 数据量比较大, 用二分的LIS 题目: Bridging signals Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 9862 Accepted: 5397 Des...

aiezhen1717的博客 181

Poj 1631 Bridging signals (LIS, nlog(n))

题目链接:http://poj.org/problem?id=1631 Bridging signals Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 13314   Accepted: 7251 Description 'Oh no, th

far away 394

poj - 1631 - Bridging signals(LIS)

题意:两列数,每列p(p 题目链接:http://poj.org/problem?id=1631 ——>>求出输入序列的LIS,左边已是升序,所以LIS对应的左边序号也是升序,一一匹配后不会交叉,LIS的长度就是答案。因为p达40000个,O(n^2)的算法不能满足需要,应使用O(nlongn)以下的算法。。 #include #include #include using std

无节操 1044

poj-1631Bridging signals(LIS)

Bridging signals Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 12202   Accepted: 6654 Description 'Oh no, they've done it again', cries the chief designe

Eric_keke的专栏 427

POJ - 1631 Bridging signals(LIS)

题目链接 题目很长,但要问的问题很简单,就是经典的求最长上升子序列问题,但是使用递推关系 dp[i]=max{1,dp[j]+1 | j<i && aj<ai } 时间复杂度O(n^2),题目中p < 40000,显然TLE。 P65~66 《挑战程序设计》 初始化dp[i]为inf,从头往后插入a[i],比较大小dp[i]=min(dp[i],a[i])后更新,...

没有期待的日子反而会顺顺利利 171

POJ 1631 Bridging signals(LIS+二分)

题目链接: 【题意】

RaynX的专栏 565
上一篇: POJ 1887 Testing the CATCHER(LIS的反面 最大递减子序列)
下一篇: ZOJ 2319 Beautiful People(LIS二分法+路径输出)
左眼皮跳跳~
博客等级 码龄13年 17粉丝 400原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值