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

poj 3065 Stargates

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

poj 3065 Stargates

#include<cstdio>#include<ctype.h>#include<algorithm>#define MAXN 6000010using namespace std;int set[MAXN];int Find(int x){    if(x==set[x])        return x;    set[x]=Find(set[x]);    return set[x];}void Connect(int a,int b){    int x=Find(a);    int y=Find(b);    if(x>y)        swap(x,y);    set[y]=x;}int getNum(char *s){    int i,k=0;    for(i=1;s[i]!='';i++)        if(s[i]!=' '&&s[i-1]==' ') k++;    return k;}bool Query(int a,int b){    int x=Find(a);    int y=Find(b);    return x==y;}int main(){    char s[100];    int i,j,k,n,l,r,v,w;    int src, dst, nnn, dststep, srcstep;    char cmd;    for(;gets(s);)    {        cmd=tolower(s[0]);        if(cmd=='d')        { sscanf(s,"%*s %d",&n); for(i=0;i<=n;i++)     set[i]=i;        }        else        { k=getNum(s); nnn=dststep=1;srcstep=0; if(k==2) sscanf(s,"%*s %d %d",&src,&dst); else if(k==3) sscanf(s,"%*s %d %d %d",&src,&dst,&nnn); else if(k==4) sscanf(s,"%*s %d %d %d %d",&src,&dst,&nnn,&dststep); else sscanf(s,"%*s %d %d %d %d %d",&src,&dst,&nnn,&dststep,&srcstep); if(cmd=='c') {     if(dststep==srcstep&&!srcstep)         nnn=1;     for(i=0,v=src,w=dst;i<nnn;i++,v+=srcstep,w+=dststep)         Connect(v,w); } else {     l=r=0;     for(i=0,v=src,w=dst;i<nnn;i++,v+=srcstep,w+=dststep)         Query(v,w)?l++:r++;     printf("%d - %dn",l,r); }        }    }    return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/380583.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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