栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

poj 2060 Taxi Cab Scheme

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

poj 2060 Taxi Cab Scheme

#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>using namespace std;#define maxn 505struct Elem{    int x1, y1, x2, y2;    int s, e;} ride[maxn];int n;int uN, vN;bool g[maxn][maxn];int xM[maxn], yM[maxn];bool chk[maxn];int cal(int h, int m){    return h * 60 + m;}int dist(int x1, int y1, int x2, int y2){    return abs(x1 - x2) + abs(y1 - y2);}void input(){    scanf("%d", &n);    for (int i = 0; i < n; i++)    {        int h, m;        scanf("%d:%d", &h, &m);        ride[i].s = cal(h, m);        scanf("%d%d%d%d", &ride[i].x1, &ride[i].y1, &ride[i].x2, &ride[i].y2);        ride[i].e = ride[i].s + dist(ride[i].x1, ride[i].y1, ride[i].x2, ride[i].y2);    }}bool ok(Elem &a, Elem &b){    return dist(a.x2, a.y2, b.x1, b.y1) + a.e < b.s;}void make(){    for (int i = 0; i < n; i++)        for (int j = 0; j < n; j++) g[i][j] = ok(ride[i], ride[j]);}bool SearchPath(int u){    int v;    for (v = 0; v < vN; v++)        if (g[u][v] && !chk[v])        { chk[v] = true; if (yM[v] == -1 || SearchPath(yM[v])) {     yM[v] = u;     xM[u] = v;     return true; }        }    return false;}int MaxMatch(){    int u, ret = 0;    memset(xM, -1, sizeof(xM));    memset(yM, -1, sizeof(yM));    for (u = 0; u < uN; u++)        if (xM[u] == -1)        { memset(chk, false, sizeof(chk)); if (SearchPath(u))     ret++;        }    return ret;}int main(){    int t;    scanf("%d", &t);    while (t--)    {        input();        make();        uN = vN = n;        printf("%dn", n - MaxMatch());    }    return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/372434.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号