杭电1050搬桌子原题链接
题目描述:
思路:创建一个数组,赋初值为0,注意两个相对房间减一除以二数组下标才相等,输入两个房间号注意房间1可能会大于房间2,要交换一下顺序,每经过一个房间,该房间数组值++,房间经过次数最多的就是至少要花费的时间。
AC代码:
#include <iostream>
using namespace std;
int main()
{
int t;
cin >> t;
while(t--)
{
int room[210];
for(int p = 0; p<210; p++)
{
room[p] =0;
}
int n;
cin >> n;
for(int i = 0; i<n; i++)
{
int a,b;
cin >> a >> b;
a = (a-1)/2;//注意减1两个数组元素下标才相等
b = (b-1)/2;
if(a > b)
{
a = a ^ b;
b = b ^ a;
a = a ^ b;
}
for(int j = a; j <= b;j++)
{
room[j]++;
}
}
int max = -1;
for(int k =0; k < 200; k++)
{
if(max < room[k]){
max = room[k];
}
}
cout << max * 10 << endl;
}
return 0;
}