ZOJ 1425 Crossed Matchings(动态规划)

LVDS系列11:Xilinx Ultrascale系可编程输入延迟(一) 按照IDELAYCTRL的参考时钟频率可以准确计算获取到,如200M参考时钟抽头分辨率为78ps,Ultrascale系列相对于7系列架构大改,体现便是U/U+系列的抽头增加到512个,同时每个抽头的分辨率就无法像7系列那样能得到一个准确的值,是一个波动的范围值,抽头分辨率随着工艺温度电压的变化而变化。EN_VTC:电压温度补偿开启的使用信号,COUNT模式下不能使用,必须保持为0,TIME模式下需要使用,在延迟工作时要启用温度电压补偿,在修改抽头值时需要关闭温度电压补偿,修改完后启用; 阅读详情

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1425


Crossed Matchings

Time Limit: 2 Seconds      Memory Limit: 65536 KB

There are two rows of positive integer numbers. We can draw one line segment between any two equal numbers, with values r, if one of them is located in the first row and the other one is located in the second row. We call this line segment an r-matching segment. The following figure shows a 3-matching and a 2-matching segment.

We want to find the maximum number of matching segments possible to draw for the given input, such that:

1. Each a-matching segment should cross exactly one b-matching segment, where a != b.

2. No two matching segments can be drawn from a number. For example, the following matchings are not allowed.

Write a program to compute the maximum number of matching segments for the input data. Note that this number is always even.


Input

The first line of the file is the number M, which is the number of test cases (1 <= M <= 10). Each test case has three lines. The first line contains N1 and N2, the number of integers on the first and the second row respectively. The next line contains N1 integers which are the numbers on the first row. The third line contains N2 integers which are the numbers on the second row. All numbers are positive integers less than 100.


Output

Output file should have one separate line for each test case. The maximum number of matching segments for each test case should be written in one separate line.


Sample Input

3
6 6
1 3 1 3 1 3
3 1 3 1 3 1
4 4
1 1 3 3
1 1 3 3
12 11
1 2 3 3 2 4 1 5 1 3 5 10
3 1 2 3 2 4 12 1 5 5 3


Sample Output

6
0
8



题意:
求上下匹配组数目。
规则:
1、匹配对的数必须相同。
2、一个数最多只有一个匹配。
3、一个匹配有且只能有一个匹配与之相交叉,且相交叉的两个匹配数 字不能相同。


解题思路:
用dp[i][j]表示第一行前i个数和第二行前j个数满足条件的匹配数。
*1、如果不匹配第一行第i个,或者不匹配第二行第j个则 dp[i][j]=max(dp[i][j-1],dp[i-1][j])
*2、如果a[i]==b[j]则不产生新匹配,匹配数与*1一样
*3、如果a[i]!=b[j]:
在第一行中往左搜,直到a[k1]==b[j];在第二行中往左搜,直到b[k2]==a[i],然后就有dp[i][j]=max(dp[i][j],dp[k1-1][k2-1]+2)


<span style="font-size:18px;">#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
const int maxn=1010;
int dp[maxn][maxn];
int a[maxn],b[maxn];
int main()
{
    int N,n,m;
    cin>>N;
    while(N--)
    {
        cin>>n>>m;
        for(int i=1;i<=n;i++) cin>>a[i];
        for(int i=1;i<=m;i++) cin>>b[i];
        memset(dp,0,sizeof(dp));
        for(int i=2;i<=n;i++)
        {
            for(int j=2;j<=m;j++)
            {
                dp[i][j]=max(dp[i-1][j],dp[i][j-1]);
                if(a[i]!=b[j])
                {
                    int k1,k2;
                    for(k1=i-1;k1>=1;k1--)
                        if(a[k1]==b[j]) break;
                    for(k2=j-1;k2>=1;k2--)
                        if(b[k2]==a[i]) break;
                    if(k1&&k2){
                        dp[i][j]=max(dp[i][j],dp[k1-1][k2-1]+2);
                    }
                }
            }
        }
        cout<<dp[n][m] << endl;
    }
    return 0;
}</span>


华为OD新系统机试真题 - 操作历史管理器的撤销/重做能力 华为OD机试新系统真题【操作历史管理器的撤销/重做能力】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【操作历史管理器的撤销/重做能力】 阅读详情

相关推荐

保姆级教程:STK 11.0 从下载到安装成功(附Matlab互联配置与常见问题解决)

本文提供STK 11.0的完整安装指南,包括下载、安装步骤、Matlab互联配置及常见问题解决方案。详细介绍了系统要求核查、分步安装流程、关键文件替换和许可证配置,确保用户能够顺利完成STK 11.0的部署并实现与Matlab的无缝对接。

weixin_30698297的博客 344

北大ACM poj1692 Crossed Matchings(动态规划)

Crossed Matchings Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 2298   Accepted: 1475 Description There are two rows of positive integer numbers. We can

gubojun的专栏 1922

CCS软件仿真插件移植避坑指南:从CCS5.5到7.4的完整流程

本文详细介绍了将CCS软件仿真插件从CCS5.5迁移至CCS7.4的完整流程与避坑指南。针对TMS320F28335等C2000系列芯片,重点解析了仿真核心文件、配置数据库、连接定义及驱动文件的移植步骤,并通过两个实战Demo验证了移植后仿真环境的可用性,帮助开发者在无硬件条件下继续高效进行算法验证与调试。

defi6farmer的博客 456

Crossed Matchings zoj1425 dp

Description There are two rows of positive integer numbers. We can draw one line segment between any two equal numbers, with values r, if one of them is located in the first row and the other one i

xtulollipop 712

BMS应用软件开发 — 7 从特斯拉到问界:主流BMS硬件架构深度解析

本文深度解析了从特斯拉Model 3到问界M5的主流BMS硬件架构,探讨了BMS在电动汽车中的核心价值与应用软件开发的关键技术。通过对比分析两家厂商的硬件设计哲学、芯片选型策略及成本控制方法,揭示了BMS硬件系统如何影响电池性能与整车安全。文章特别分享了电压采样精度、EMC设计等实战经验,为BMS开发提供宝贵参考。

weixin_42554408的博客 455

PowerBuilder 9.0安装组件全解析:Adaptive Server Anywhere、PowerDynamo、InfoMaker到底怎么选?

本文从技术架构师视角详细解析PowerBuilder 9.0安装组件选型策略,包括Adaptive Server Anywhere、PowerDynamo和InfoMaker的核心功能与应用场景。通过分析组件间的依赖关系和安装冲突机制,提供针对不同开发需求的最佳安装方案,帮助开发者高效配置PB9.0开发环境。

weixin_28700593的博客 441

ZOJ1425 POJ1692 Crossed Matchings

很好的dp题。 dp[i][j]表示的是a数组的第i个位置与b数组的第j个位置时最大的交叉匹配数。 /******************************************************************************* # Author : Neo Fung # Email : neosfung@gmail.com # Last modi

Neo Fung的专栏 1153

NotebookLM平替实测:用Open Notebook+Ollama零成本搭建私有AI知识库

本文提供了一份详细的实战指南,教你如何利用Open Notebook与Ollama,在本地零成本搭建一个功能强大且完全私有的AI知识库。通过Docker容器化部署,实现数据绝对安全、模型自由选择与离线运行,是NotebookLM等云端工具的绝佳平替方案,尤其适合注重数据隐私的教育工作者、研究者及小团队。

weixin_29052717的博客 513

zoj 1425 Crossed Matchings

d[i][j]:=第一行的前i个与第二行的前j个匹配的最大值 d[i][j]:=max(d[i-1][j],d[i][j-1],d[s1-1][s2-1]+2) 1 a[s1]==b[j],a[i]==b[s2],a[i]!=b[j] #include using namespace std; int main() { int m; scanf("%d",&m); while(m-

allblue 572

告别CNN局限:用Transformer+迁移学习搞定高光谱图像分类(附Pytorch代码)

本文探讨了如何利用Transformer的自注意力机制和迁移学习策略解决高光谱图像分类中的挑战。通过结合CNN的局部特征提取和Transformer的全局建模能力,提出的DenseTransformer架构在多个数据集上实现了显著的性能提升。文章还提供了详细的PyTorch实现代码和工程优化技巧,帮助开发者快速应用这一技术。

weixin_32771907的博客 604

Python对接海康威视机器视觉工业相机

工业相机只允许单条连接,也就是说MVS如果连接了相机,python代码就无法获取数据,此时必须。相机工具类(读者直接复制)HKCamera_class.py。博主这里出现了一个警告:获取不到相机参数。四、使用Pycharm打开Python代码示例文件夹。三、找到MVS示例代码(代码在MVS的安装位置)二、解压并安装MVS客户端。一、下载MVS客户端。安装一下opencv。

Good Luck 2万+

【动态规划】Crossed Matchings

Crossed Matchings Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 2079   Accepted: 1326 Description There are two rows of positive integer numbers. We can draw

wu_yihao的专栏 490

020、Sensor 供电设计:AVDD、DVDD、IOVDD 的上电时序与纹波要求

本文总结了图像传感器(Sensor)供电设计中的关键要点与常见问题:1. 三路供电特性差异:AVDD(模拟供电)对纹波最敏感(通常<30mVpp),DVDD需应对大电流瞬态变化,IOVDD需满足MIPI接口电压稳定要求。2. 上电时序至关重要,应遵循"模拟→数字→IO"的启动顺序,时序偏差可能导致初始化失败。3. 纹波控制需合理选择电容组合(如10μF+0.1μF),注意布局走线及电容ESR/ESL特性。4. 调试建议使用示波器多通道测量时序和纹波,重点关注传感器启动瞬间的电源特性。5. 经验教训包括预留设

sundong_81的博客 524

[ACM_动态规划] ZOJ 1425 Crossed Matchings(交叉最大匹配 动态规划)

Description There are two rows of positive integer numbers. We can draw one line segment between any two equal numbers, with values r, if one of them is located in the firs...

weixin_34067980的博客 123

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

ZOJ 1425 Crossed Matchings DP LCS

ZOJ 1425 Crossed Matchings题目描述:  题目链接:ZOJ 1425 Crossed Matchings题目大意:  上下2组数据,找一个满足条件的最大匹配数。匹配条件是任意一个匹配的连线都要被至少另一个不一样的匹配交叉。每个点只能用一次。解题思路:  使用dp[i][j]表示一个行的前i个数与第二行的前j个数,共有dp[i][j]个满足意义的描述。对于每一个新加入

Running Boy的AC Dream 463

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

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

zoj1425 Crossed Matchings

【题意】:给你上下各一列数,让你进行匹配。规则是数字相同的才可以匹配,且每个数字只可以被匹配一次,并且匹配的时候一定要是两个匹配以线段相交的形式出现,且每组匹配只能有一个交点。再然后,还有一个限制条件,就是每组两个匹配的四个字符不能都是一样的。示意图戳开链接看。 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1425 ...

weixin_30401605的博客 137

Statistics and Machine Learning Toolbox

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

ZOJ1425 Crossed Matchings dp

#include #include int n1[101],n2[101]; int d[101][101]; int max(int a,int b) { if(a<b)return b; else return a; } int main() { int T,t1,t2,i,j,k,x,y; scanf("%d",&T); while(T--) { scanf("%d%d",&

MY专栏 443

zoj1425Crossed Matchings

哇哇哇哇。。又A了一道。。 刚写出来的,感觉好激动。。 下午的时候看了下题目,题目大意为两行数字,上下相同的数字连线算一次匹配,求可能的最大匹配,规则是:I 连线必须且只能被另一条直线穿过。且这两条直线代表的数字不能相同。II 一个数字只能有一条连线。 刚开始没什么想法,也有想到dp,不过没想到具体怎么实现。。 晚上又仔细看了下,感觉dp应该可以做出来,用了好多for循环,不过如果按我的思...

weixin_34168880的博客 108

ZOJ 1425 Crossed Matchings(LCS变形)

题目大意:   就是说给你两行数字,然后对于每一行的相同的数字进行连线,每次连接成功后,就算是1次成功,求最大的成功次数。当然,要成功的话,也是要满足一定的条件的:   1.在连接的过程中,不能用两根线连接了4个相同数字。   2.一个数字不能发出两条线。 解题思路:   刚看到这个题,以为是图论的知识,感觉自己拿不下,,(有点像是什么二分图匹配吧,用两个颜色给相邻的顶点染色,...

weixin_38167855的博客 162

ZOJ_Crossed Matchings DP

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1425 DP,定义dp[i][j]为第一行中的前i个数和第二行中的前j个数,最多能构成多少对相交线段。因为题意中规定,任意一段合法的线段a有且只有一段线段

Chris_Home 491

Crossed Matchings——动态规划

There are two rows of positive integer numbers. We can draw one line segment between any two equal numbers, with values r, if one of them is located in the first row and the other one is located in th

LSC_333的博客 769

ACM: 动态规划 poj 1692

Crossed Matchings Description There are two rows of positive integer numbers. We can draw one line segment between any two equal numbers, with values r, if one of them is located in the first row and

smile_benson 435

K-based Numbers. Version 2

Description Let’s consider K-based numbers, containing exactly N digits. We define a number to be valid if its K-based notation doesn’t contain two successive zeros. For example: 1010230 is

Lu的专栏 559

POJ 1692 Crossed Matchings(DP)

题意 有两行数a[n1] b[n2] 分别有n1 n2个数 当第一行一个数和第二行一个数相等时 他们就可以连起来 每个数只能连一个 求最有多少条线使得每条都至少有一条和它相交 令d[i][j]表示 a的前i个数和j的前j个数最多可以连接多少条 当a[i]==b[j]时 将们连起来是肯定不与其它线相交的 所以d[i][j]=max(d[i-1][j],d[i]...

weixin_30955617的博客 148

zoj 1425 最多匹配交叉 LCS

zoj 1425 要注意题目的要求,不然就会想得很复杂 1、要求得匹配线是成对交叉的,只是两两相交 2、一对交叉线不能是4个相同的数字 知道第一点后会发现LCS的方法可以解决这类问题,按照i j循环,每次只看新加的b[j],每个b[j]都与m个a[i]尝试过匹配 #include #include int m,n; int a[120],b[120]; int dp[120][120];

yan_____的专栏 1194

POJ 1692 Crossed Matchings(dp).

~~~~ 题意:给出两行数字序列,求上下匹配的最多组数是多少. 匹配规则: 1.匹配对的数字必须相同。 2.每个匹配必须有且只能有一个匹配与之相交叉,且相交叉的两组匹配数字必须不同。 3.一个数最多只能匹配一次。 最长公共子序列的改编,令f[i][j]表示第一个序列的前i个数字和第二个序列的前j个数字的匹配的最优值。 状态转移:f[i][j]=max(f[p-1][q-1]+2,

ACM之路,在希望的田野上。 1074
上一篇: ZOJ 1610 Count the Colors(线段树,但暴力未必不行)
下一篇: ZOJ 3703 Happy Programming Contest(0-1背包)
hellohelloC
博客等级 码龄12年 15粉丝 107原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值