概述:一共有400个房间,需要在各个房间内搬运桌子,当搬运桌子的房间之间占用着同一个走廊时,那么每次只能有一张桌子能够被搬运,并且需要等待十分钟,当搬运时不在同一块走廊,那么可以同时搬运这些不重复的桌子。利用编程求给出的数据中能够最快搬运桌子需要花费的时间。
思路:首先将房间号转换为对应的走廊号,然后将搬运桌子时重复的走廊号的次数相加,最后将次数对比求出最大的值,这个最大的值就是需要花费的最大时间。
感想:课堂上作为例题讲解的一道题目,读懂题意之后解体并不难,在编写过程中存在细节性的错误,提交一直不过,这个明显需要加强。
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int n, From, To, N;
cin >> n;
while (n--)
{
int move[200] = { 0 };
cin >> N;
for (int i = 0; i < N;++i)
{
cin >> From >> To;
From = (From + 1) / 2;
To = (To + 1) / 2;
if (From > To)
{
int temp = From;
From = To;
To = temp;
}
for (int i = From; i <= To; ++i)
move[i]++;
}
int max = 0;
for (int i = 0; i < 200; ++i)
{
if (move[i] > max)
max = move[i];
}
cout << max * 10 << endl;
}
return 0;
}