传送门 :
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
关注
打赏