题目大意:如图所示在一条走廊的两侧各有200个房间,现在给定一些成对的房间相互交换桌子,但是走廊每次只能通过一组搬运,
也就是说如果两个搬运过程有交叉是不能同时搬运的,要依次来,一次搬运10min,问完成所有的搬运的最少用时。
解题思路:考虑每个房间有多少搬运过程需要经过,我们截取最大的房间经过的次数就可以了,挺锻炼思维的一道题。
注意:
- 这个思路我第一时间就想到了,但在脑海里过了一遍,觉得漏洞颇多,没有采用。其实应当在纸上画一遍,所谓的漏洞并不存在,只是我思维的死角罢了。
- 此题虽为水题,样例却颇具欺骗性。第一,样例所举皆为偶数,而本题奇偶需分开处理。第二,样例所举皆为左低右高,符常人思维,而题目未说明左右高度,需自行处理。
得:样例只是第一步的参考,判断正误,还需自己举出多维全面的例子。
#include<cstdio>
#include<algorithm>
#include<string.h>
#include<cmath>
#define INF 0x3f3f3f3f
using namespace std;
int t