📄 2493127_wa.c
字号:
#include <stdio.h>
#include <math.h>
#include <string.h>
int m;
int map[501][501];
int B[501], link[501];
struct node
{
int t;
int tt;
}taxi[501];
int find(int v)
{
int i;
for(i = 1; i <= m; i++)
if(map[v][i]&&!B[i])
{
B[i] = 1;
if(!link[i]||find(link[i]))
{
link[i] = v;
return 1;
}
}
return 0;
}
void input()
{
int i, j, tt;
int hh, mm, ans;
int a, b, c, d, t;
scanf("%d",&m);
for(i = 1; i <= m; i++)
{
scanf("%d:%d%d%d%d%d",&hh,&mm,&a,&b,&c,&d);
t = abs(a-c)+abs(b-d);
tt = hh*60+mm;
taxi[i].t = t;taxi[i].tt = tt;
}
memset(map,0,sizeof(map));
for(i = 1; i < m; i++)
for(j = i+1; j <= m; j++)
if(taxi[i].tt+taxi[i].t<taxi[j].tt)
map[i][j] = 1;
ans = 0;
memset(link,0,sizeof(link));
for(i = 1; i <= m; i++)
{
memset(B,0,sizeof(B));
ans += find(i);
}
printf("%d\n",m-ans);
}
int main()
{
int n;
scanf("%d",&n);
while(n--)
input();
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -