容易出错的地方(导致测试点2.4不通过)
- 未考虑到一辆车在今天多次出入(map对应的值要更新,计算最长时间也要记得加上)
- 在两辆车的间隔中,可能会查询多次。我一开始的设计是查询完一次,直接跳到下一辆车的时间,这样就会错过了。
- 只in不out,或只out不in的不计算(这个应该很多人都注意到了),我分了record和valid两个数组记录
- 运行超时解决方案:本题强调了查询时间是递增的,利用好这个特性。
AC代码:
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <map>
#include <cstring>
using namespace std;
struct RECORD
{
char PlateNum[10];
int flag;// 0 in,1 out
int num=0;
int time=0;
}record[10010],Valid[10010];
bool cmp_carnum(RECORD A,RECORD B)
{
if(strcmp(A.PlateNum,B.PlateNum)!=0)
return strcmp(A.PlateNum,B.PlateNum)<0;
else
return A.time<B.time;
}
bool cmp_time(RECORD A,RECORD B)
{
if(A.t