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

zoj 2221 Taxi Cab Scheme

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

zoj 2221 Taxi Cab Scheme

#include <iostream>#include <cstdio>#include <cstring>using namespace std;#define maxn 505bool map[maxn][maxn],vis[maxn];int mac[maxn],n;struct point{    int x,y;    point(){}    point(int _x,int _y):x(_x),y(_y){}};int fab(int x){    return (x > 0)?x : -x;}int dis(const point &a,const point &b){    return fab(a.x - b.x) + fab(a.y - b.y);}struct node{    point s,t;    int a,b;    node(){}    node(int x,point _s,point _t)    {        s = _s;        t = _t;        a = x;        int len = dis(s,t);        b = a + len;    }}st[maxn];bool find(int x){    for(int i = 1;i <= n;i++)    {        if(map[x][i] && !vis[i])        { vis[i] = true; if(!mac[i] || find(mac[i])) {     mac[i] = x;     return true; }        }    }    return false;}void solve(){    scanf("%d",&n);    for(int i = 1;i <= n;i++)    {        int a,b;        int in[4];        scanf(" %d:%d",&a,&b);        int temp = a * 60 + b;        for(int j = 0;j < 4;j++) scanf(" %d",&in[j]);        st[i] = node(temp,point(in[0],in[1]),point(in[2],in[3]));    }    memset(map,0,sizeof(map));    memset(mac,0,sizeof(mac));    for(int i = 1;i <= n;i++)    {        for(int j = 1;j <= n;j++)        { if(st[j].a > st[i].b + dis(st[i].t,st[j].s))     map[i][j] = 1;        }    }    int ans = 0;    for(int i = 1;i <= n;i++)    {        memset(vis,0,sizeof(vis));        if(find(i)) ans++;    }    printf("%dn",n - ans);}int main(){    int t;    scanf("%d",&t);    for(int i = 0;i < t;i++)solve();}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/377219.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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