{"trustable":true,"prependHtml":"\u003cscript\u003e window.katexOptions \u003d { disable: true }; \u003c/script\u003e\n\u003cscript type\u003d\"text/x-mathjax-config\"\u003e\n MathJax.Hub.Config({\n tex2jax: {\n inlineMath: [[\u0027$$$\u0027,\u0027$$$\u0027], [\u0027$\u0027,\u0027$\u0027]],\n displayMath: [[\u0027$$$$$$\u0027,\u0027$$$$$$\u0027], [\u0027$$\u0027,\u0027$$\u0027]]\n }\n });\n\u003c/script\u003e\n\u003cscript async src\u003d\"https://mathjax.codeforces.org/MathJax.js?config\u003dTeX-AMS-MML_HTMLorMML\" type\u003d\"text/javascript\"\u003e\u003c/script\u003e","sections":[{"title":"","value":{"format":"HTML","content":"\u003cdiv class\u003d\"panel_content\"\u003e“哦不,他们又搞砸了”,Waferland芯片工厂的首席设计师喊道。一次又一次,布线设计师们完全搞砸了,使得芯片上连接两个功能模块端口的信号交叉纷乱。在流程的这个晚期阶段,重新布线成本太高。因此工程师们必须利用第三维来桥接信号,以确保没有两个信号交叉。然而,桥接是一项复杂的操作,因此最好尽量少地进行桥接。需要一款计算机程序,找到可以在硅表面连接的最大信号数量,而不会相互交叉。考虑到一个功能模块边界可能有成千上万个信号端口,这个问题对程序员来说相当具有挑战性。你准备好接受挑战了吗?\u003cbr\u003e\u003cimg style\u003d\"max-width:100%;\" src\u003d\"CDN_BASE_URL/196303d16aa0f95173d538e817d0b846?v\u003d1704103595\"\u003e\u003cbr\u003e图1. 左侧:两个模块的端口及其信号映射(4,2,6,3,1,5)。右侧:最多可以在硅表面路由三个信号而不相互交叉。虚线信号必须进行桥接。\u003cbr\u003e\u003cbr\u003e图1中描述了一个典型情况。两个功能模块的端口从上到下编号为1到p。信号映射由1到p的数字的排列描述,形式为在范围1到p内具有p个唯一数字的列表,其中第i个数字指定右侧的哪个端口应连接到左侧的第i个端口。\u003cbr\u003e当且仅当连接每对端口的直线交叉时,两个信号才会交叉。\u003c/div\u003e"}},{"title":"输入","value":{"format":"HTML","content":"在输入的第一行,包含一个正整数n,表示接下来的测试场景数量。每个测试场景以一行包含一个正整数p\u0026lt;40000开始,表示两个功能模块上的端口数量。然后是p行,描述信号映射:第i行是右侧模块上应连接到左侧模块第i个端口的端口号。"}},{"title":"输出","value":{"format":"HTML","content":"对于每个测试场景,输出一行,包含可以在硅表面路由的最大信号数量。"}},{"title":"示例","value":{"format":"HTML","content":"\u003ctable class\u003d\u0027vjudge_sample\u0027\u003e\n\u003cthead\u003e\n \u003ctr\u003e\n \u003cth\u003eInput\u003c/th\u003e\n \u003cth\u003eOutput\u003c/th\u003e\n \u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n \u003ctr\u003e\n \u003ctd\u003e\u003cpre\u003e4\r\n6\r\n4\r\n2\r\n6\r\n3\r\n1\r\n5\r\n10\r\n2\r\n3\r\n4\r\n5\r\n6\r\n7\r\n8\r\n9\r\n10\r\n1\r\n8\r\n8\r\n7\r\n6\r\n5\r\n4\r\n3\r\n2\r\n1\r\n9\r\n5\r\n8\r\n9\r\n2\r\n3\r\n1\r\n7\r\n4\r\n6\r\n\u003c/pre\u003e\u003c/td\u003e\n \u003ctd\u003e\u003cpre\u003e3\r\n9\r\n1\r\n4\u003c/pre\u003e\u003c/td\u003e\n \u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e"}}]}