测试- 雷神领域

【问题描述】

Lwins_7k+ (GYZ),Synophia大陆首屈一指的天才魔法师,创造了一个新魔法:雷神领域。
这个魔法会首先在地面上形成正方网格魔法阵列,然后在某些位置召唤雷电轴标。注意:一个位置只能有一个雷电轴标存在。雷电轴标总出现在正方网格魔法阵列的顶点处,所以我们可以用一个有序整数对(x_i,y_i)标记它的位置。
然后,如果存在三个雷电轴标A,B,C满足:x_A=x_B, y_A=y_C,则该魔法会立即召唤一个位置在(x_C,y_B)的雷电轴标,如此往复直至不存在满足条件的雷电轴标组为止。
最后,Lwins_7k+将选择一条正方网格魔法阵列上的路径并使用自然力激活它们,这时候雷神领域的魔法强度就被定义为路径上的雷电轴标所占用的行数/列数中的较小值。但是由于Lwins_7k+才刚创造这个魔法,如果选择的路径中出现U形或往返子路径,那么会给施展魔法的魔法师带来一定危险性。所以选择的路径不应该包含U形子路径或往返子路径。(类似 |__ __ __| 这样的广义U形路径也不行)
由于自然力必须从魔法师的体内调和,所以路径的起点应该是魔法师所站的位置,即正方网格魔法阵列的左下角(0,0)点。
现在他想要询问你——以扫地为生来隐藏自己真实身份的大陆有史以来最伟大的式神制造师Lwins_***,他所能释放的雷神领域的最高魔法强度。当然,路径由你来为他选择。虽然如此,作为一个魔法天才,其实他只关心最高魔法强度而已。

【输入格式】

输入文件field.in第一行包含一个正整数N,表示接下来的数据个数。
接下来N行,每行包含两个正整数x_i,y_i,表示(x_i,y_i)处存在一个雷电轴标。

【输出格式】

输出文件field.out仅包含一行,为可能的最高魔法强度。

【输入样例】field

7
1 1
1 1
1 1
1 2
1 3
2 2
3 1

【输出样例】

3

【数据规模】

对于30%的数据:N<=10, 0<x_i,y_i<=5。
    对于80%的数据:0<x_i,y_i<=2000。
    对于100%的数据:N<=15000, 0<x_i,y_i<=5000。

这题关键就是求出所有的点

然后就有了神奇的方法

分别把行和列看成n个点

每次给你点(x,y),就把列x和行y用并查集合并

对于点x,y是否存在我们只要检查列x和行y是否在同一个集合,如果是,那点x,y就存在,否则就不存在(图上的点的意义就是另外一个图的连通性了,因为是无向图,所以并查集很方便)

然后再5000*5000的dp就行了

 1 const
 2     maxx=5010;
 3     name=‘field‘;
 4 var
 5     f:array[0..maxx*2]of longint;
 6     dp:array[0..maxx,0..maxx]of longint;
 7     n,mx,my:longint;
 8
 9 function find(x:longint):longint;
10 begin
11     if f[x]=x then exit(x);
12     f[x]:=find(f[x]);
13     exit(f[x]);
14 end;
15
16 function max(x,y:longint):longint;
17 begin
18     if x>y then exit(x);
19     exit(y);
20 end;
21
22 procedure main;
23 var
24     i,j,x1,y1:longint;
25 begin
26     for i:=1 to maxx*2 do
27       f[i]:=i;
28     read(n);
29     for i:=1 to n do
30       begin
31         read(x1,y1);
32         if x1>mx then mx:=x1;
33         if y1>my then my:=y1;
34         f[find(x1)]:=find(y1+maxx);
35       end;
36     for i:=1 to mx do
37       for j:=1 to my do
38         if find(i)=find(j+maxx) then dp[i,j]:=dp[i-1,j-1]+1
39         else dp[i,j]:=max(dp[i,j-1],dp[i-1,j]);
40     writeln(dp[mx,my]);
41 end;
42
43 begin
44     main;
45 end.

时间: 2024-10-11 13:12:44

测试- 雷神领域的相关文章

问题 A: 雷神领域

传送门 题目描述 L君,S大陆首屈一指的天才魔法师,创造了一个新魔法:雷神领域.  这个魔法会首先在地面上形成正方网格魔法阵列,然后在某些位置召唤雷电轴标.注意:一个位置只能有一个雷电轴标存在. 雷电轴标总出现在正方网格魔法阵列的顶点处,所以我们可以用一个有序整数对(X_i,Y_i)标记它的位置.  然后,如果存在三个雷电轴标A,B,C满足:XA=XB, YA=YC,则该魔法会立即召唤一个位置在(XC,YB)的雷电轴标,如此往复直至不存在满足条件的雷电轴标组为止.  最后,L君将选择一条正方网格

测试管理工具列表大全

ID Name Notes 1 TestDirector/Quality Center 业界第一个基于Web的测试管理系统,它可以在您公司组织内进行全球范围内测试的协调.通过在一个整体的应用系统中提供并且集成了测试需求管理,测试计划,测试日程控制以及测试执行和错误跟踪等功能,TestDirector极大地加速测试过程.8.0后改称QC. 由于HP QC可以单独使用Defect模块,也可单独申请Defect模块的License,它也是名副其实的缺陷管理工具. 网址:http://www.mercu

测试开发行业正在洗牌,新的机会是什么

关于未来测试开发领域的行业发展,业界有这样的声音: 1.测试者的技术门槛越来越高,机械式重复劳动越来越少.测试员们从体力劳动中解放出来,同时要求测试员们应该掌握更多的测试技术以及工具,用技术说话. 2.自动化测试的使用全面普及,行业标准化测试流程产生.原本繁琐的劳动,由自动化测试去承担.另外,现在会有更多工具辅助测试者高效工作,比如更便捷地使测试者收集 BUG 信息,快速整理测试用例等. 测试开发领域对人才的需求有所变化,行业人员需要充电跟上需求变化.变化这件事情可以聊很多内容,对于我们测试开发

成为一个优秀的测试工程师需要具备哪些知识和经验?

根据我的观察,优秀的测试人员可以做的事情可以包括如下3点: 由单纯的测试变成项目质量保证工作持续集成探索和推动和自动化测试技术研究测试相关工具的开发1.我们先来讲第一点,由单纯的测试变成项目质量保证工作 测试,从狭义的角度来讲,包括如下这些环节:测试计划和测试用例编写-测试执行-质量报告书写测试人员一般会在开发阶段就进行测试计划和测试用例的编写和准备工作:在测试阶段,我们一般先会做功能测试,等项目功能基本稳定,bug较少了,就开始做兼容性测试.性能测试.安全性测试.兼容性测试保证了产品在多浏览器

你为什么喜欢测试?

在我职业生涯中,测试是一次偶然机会才得以成为我的工作.以前,我不明白为什么喜欢测试,也许把它仅仅当做一份工作,并无感情投入.看到一位朋友写的喜欢测试的原因.认为写得在理,这一条条的理由将我心中无以名状的对测试感觉具体化,愈加清晰.内容如下: 在我职业生涯的大部分时间都是做软件测试员,我过去常常澄清我喜欢我的工作的愿意和我为什么要继续.在不同的阶段,"喜欢"的因素是不同的.但是,这确实帮助我理解我目前的焦点以及探索新的测试的领域. 你是通过选择或是偶然机会成为一个QA,以你知道的bug的

较好的手机测试面试题

现在手机应用已经进入普通老百姓的家庭,特别是智能手机的应用可以说已经普通盖地的进入每个家庭.学软件的,如果你要想进入手机测试这个领域去发展,那么大家来看看你是否掌握基本的手机测试方面的知识.下面是一套比较好的手机测试面试题,总结后分享给大家: 1.什么是手机软件测试 手机作为专用的消费类电子产品需要进行以下测试:可靠性测试(对于硬件则是RQT;对于软件则是field trial);标准符合性测试(FTA);互操作性测试(IOT);安全性测试(安规测试);强度测试等. 2.性能测试 性能测试强调长

为什么想做测试,我的测试开端

这个问题曾经纠结了我很久,开发还是测试?最终出于自己内心的渴望与求知决定我要从事软测这个行业. 从本科我就开始接触主流的编程语言,也一直以为自己以后会从事软件设计这份工作,直到大三找实习的时候接触到软测,加上身边很多人都说女孩子适合做软测,不累,当初就抱着这么单纯的想法,懵懵懂懂的就想往测试这个方向走了,算是在心里种下了一颗种子.当时也是为了增加项目经历和拥有开发经验(当时觉得有开发经历能找到好工作)就选择了现在所在的实验室,进入实验室后才发现这个环境和我所想的不一样,不到半年,我就对自己的前途

重读《从菜鸟到测试架构师》-- 职业生涯的考虑

都说万事开头难,小艾作为菜鸟测试工程师加入到测试项目团队,努力学习着关于测试入门的知识.有了基本的知识及对测试的领域有了一定的认识之后,小艾开始思考自己的职业生涯应该有什么样的前景?测试工程师是一个专注程度很高的技术背景职位,但小艾并不清楚自己未来无论是在技术还是管理上有哪些可以选择的发展方向,更别说如何选择方向了. 于是,热心的导师再次登场,为小艾深入剖析技术与管理道路的发展路线. 测试工程师的技术发展路线 在职业发展起步期,测试工程师可以先把自己定位为某种专门测试的专家,如功能测试专家.系统

转帖子:测试专家10年软件测试工作总结

首先,谈谈测试职业规划,即做什么的问题.所谓方向比努力重要,这绝对是一句真理.如果能在刚走上测试工作岗位的时候明白这个道理,那么不出5年,你一定能成为某一测试领域的专家,那时不管是薪水.自信心都是顺其自然的事情.但是遗憾的是,我们获取的太多信息是,测试人员是一个通才,什么都要学,什么都要懂.结果这样的一个方向,导致了3脚猫功夫的测试人员一大把.那么什么都懂一点的测试人员难道就没有用武之地了吗?也不是,可以朝着测试管理岗位发展.说到这里,引出了测试职业规划的第一条路:测试管理.那么很容易想到职业规