题目大意
在一层楼上推桌子,每个空间一次只能推1种桌子,且消耗十分钟。可以同时推多个桌子,但是他们所占的空间不能是相交的如图
解法
真的很考验思维能力,首先考虑到这个走廊是有两排的,我瞬间想到了宿舍楼。。。
发现1 2是对着的3 4是对着的一个空间而2 3是两个空间这该怎么办好呢?
我们可以把他们化成1 2这种格式,即奇数左边界偶数右边界,即小的如果是偶数那么-1大的边界如果是奇数那么加一2 3可以化解成1 4是两个空间了,然后计算最大重复空间即可了
代码
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
int bk[1000];
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int t;
cin>>t;
while(t--)
{
memset(bk,0,sizeof(bk));
int n;
cin>>n;
for(int i=0;i<n;i++)
{
int t1,t2;
cin>>t1>>t2;
if(t1>t2)
swap(t1,t2);
if(t1%2==0)
t1--;
if(t2%2==1)
t2++;
for(int i=t1;i<=t2;i++)
bk[i]++;
}
int maxn=-1;
for(int i=1;i<=400;i++)
maxn=max(maxn,bk[i]);
cout<<maxn*10<<"
";
}
}