简单题意
两侧各有200房间,需要把桌子从一个房间搬到另一个房间,搬桌子时在路程中间的走廊将被占用10分钟,有若干桌子,给出出发和目的地,求出最少搬桌子的时间
解题思路形成过程
将房间号转化为对应走廊号,搬一次桌子把占用的走廊计数一次,最后统计占用最多次数的走廊,乘以10即为最短时间
感想
听完老师讲完这道题,感觉思路很巧妙,需要学习其中的思想
AC代码
#include <iostream>
#include <stdio.h>
#include <string>
#include <memory.h>
#include <fstream>
using namespace std;
int main(){
ifstream cin("in.txt");
int t,n;
int move[200];
cin>>t;
while(t--){
memset(move,0,sizeof(move));
int from,to;
cin>>n;//scanf("%d",&n);
for(int i=0;i<n;i++){
cin>>from>>to;// scanf("%d%d",&from,&to);
from=(from-1)/2;
to=(to-1)/2;
if(from>to){
int temp=from;
from=to;
to=temp;
}
for(int j=from;j<=to;j++)
move[j]++;
}
int max=0;
for(int i=0;i<200;i++)
if(move[i]>max)max=move[i];
printf("%d\n",max*10);
}
return 0;
}