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

poj 1984 Navigation Nightmare

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

poj 1984 Navigation Nightmare

#include<cstdio>#include<cstring>#include<iostream>#include<cstdlib>using namespace std;const int maxn=40100;struct node{    int x;    int y;}a[maxn];struct Edge {    int u;    int v;    int l;    char dir[5];}e[maxn];int n,m,p[maxn];int find(int x){    if(p[x]==-1)return x;    int y=p[x];    p[x]=find(p[x]);    a[x].x+=a[y].x;    a[x].y+=a[y].y;    return p[x];}int main(){    while(scanf("%d%d",&n,&m)!=EOF)    {memset(p,-1,sizeof(p));memset(a,0,sizeof(a));for(int i=0;i<m;i++)    scanf("%d%d%d%s",&e[i].u,&e[i].v,&e[i].l,&e[i].dir);int q,now=0;scanf("%d",&q);while(q--){    int sa,sb,t;    scanf("%d%d%d",&sa,&sb,&t);    while(now<t)    {int u=e[now].u;int v=e[now].v;int x=find(e[now].u);int y=find(e[now].v);if(x==y)    continue;int x1=a[v].x;int y1=a[v].y;if(e[now].dir[0]=='E'){    a[y].x=a[u].x+e[now].l-a[v].x;    a[y].y=a[u].y-a[v].y;}else if(e[now].dir[0]=='W'){    a[y].x=a[u].x-e[now].l-a[v].x;    a[y].y=a[u].y-a[v].y;}else if(e[now].dir[0]=='S'){    a[y].x=a[u].x-a[v].x;    a[y].y=a[u].y-e[now].l-a[v].y;}else{    a[y].x=a[u].x-a[v].x;    a[y].y=a[u].y+e[now].l-a[v].y;}if(x!=y)    p[y]=x;now++;    }    int x=find(sa);    int y=find(sb);    if(x==y)printf("%dn",abs(a[sa].x-a[sb].x)+abs(a[sa].y-a[sb].y));    elseprintf("-1n");}    }    return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/368087.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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