/ Randle / 题库 /

辣鸡

辣鸡

辣鸡
(spicychicken.cpp/c/pas)
【问题描述】
辣鸡选手wyz喜欢辣鸡。
wyz在后院养了许多辣鸡。wyz的后院可以看成一个A*B的矩形,左下角的坐标为(0,0),右上角的坐标为(A,B)。
wyz还在后院里建了许多栅栏。有n个平行于y轴的栅栏a1..an,表示挡在(ai,0)到(ai,B)之间。有m个平行于x轴的栅栏b1..bn,表示挡在(0,bi)到(A,bi)之间。这样,平面被划成了(n+1)*(m+1)块辣鸡的活动区域。
为了方便辣鸡的活动,wyz现在要去掉某些栅栏的一部分,使得每一块活动区域都连通。
同时,每次修改栅栏只能去掉从某个交点到另一个交点的一整段栅栏。举(打)个比(栗)方(子):

原来是这样的布局,经过修改可以变成这样:(0:space)
+---+--+
|000|00|
+---+--+
|000|00|
|000|00|
+---+--+
现在,wyz想知道,要使得每一块辣鸡活动区域都联通,最少需要去掉多少长度的栅栏。
+---+--+
|000000|
+---+00+
|000000|
|000000|
+---+--+

【输入格式】
输入到spicychicken.in
第一行4个正整数A、B、n、m,描述了后院的大小和两种栅栏的数目。
第2行到第n+1行,每行1个正整数,第i+1行的数描述了a[i]。
第n+2行到第n+m+1行,每行1个正整数,第n+i+1行的数描述了b[i]。

【输出格式】
输出到spicychicken.out
一行一个整数表示需要去掉的栅栏的最小长度总和。

【输入输出样例】
spicychicken.in spicychicken.out
15 15 5 2
2
5
10
6
4
11
3 44

【数据范围】
对于10%的数据,A,B<=1000,n,m<=20
对于30%的数据,A,B<=1000,000,n*m<=25,000
对于40%的数据,n*m<=250,000
对于50%的数据,n*m<=4,000,000
对于100%的数据,1<=A,B<=1000,000,000,1<=n,m<=25,000
数据保证0<a[i]<A,0<b[i]<B

信息

难度
9
分类
(无)
标签
(无)
递交数
7
已通过
1
通过率
14%
上传者