前言
传送门 :
B.选区间
题意 :
给定
n
n
n个一类区间
(
l
1
,
i
,
r
1
,
i
)
(l_{1,i},r_{1,i})
(l1,i,r1,i)
给定
m
m
m个二类区间
(
l
2
,
i
,
r
2
,
i
)
(l_{2,i},r_{2,i})
(l2,i,r2,i)
从 n , m n,m n,m区间中各挑一个区间使得 两个区间之间的距离尽可能大
思路 :
考虑
从
(
l
1
,
i
,
r
1
,
i
)
(l_{1,i},r_{1,i})
(l1,i,r1,i)中取出
l
1
,
r
1
l1,r1
l1,r1
从
(
l
2
,
i
,
r
2
,
i
)
(l_{2,i},r_{2,i})
(l2,i,r2,i)中取出
l
2
,
r
2
l2,r2
l2,r2
显然的对于区间长度的计算是
l
−
r
l-r
l−r
因此为了该点尽可能大,我们就需要令
l
l
l尽可能大而
r
r
r尽可能小
code :
void solve(){
int l1 = -INF, r1 = INF;
int n;cin>>n;
for(int i=1;i>l>>r;
l1 = max(l1,l);
r1 = min(r1,r);
}
int l2 = -INF, r2 = INF;
int m;cin>>m;
for(int i=1;i>l>>r;
l2 = max(l2,l);
r2 = min(r2,r);
}
// cout
关注
打赏
