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

poj 1522 N

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

poj 1522 N

#include<iostream>#include<map>#include<string.h>#include<stdio.h>using namespace std;map<string,int> maps;int fa[200];int find(int number){   if(fa[number]==number) return number;    else    {  fa[number]=find(fa[number]);       return fa[number];    }}//实现字符串映射成数字,构造并查集,返回值是字符串path的编号//形参path是待映射的字符串,count是已经使用的字符编号int build(char path[],int& count){    int index;    if(maps.find(string(path))==maps.end()) //新的字符串    {   maps[string(path)]=++count; //映射        index=count;        fa[count]=count; //并查集的一个根    }    else index=maps[string(path)];    return index;}int main(){    int n;    int number=1;    while(scanf("%d",&n)&&n)    {   int i,p;        char starting[15],ending[15];        for(i=0;i<n;i++)  //构造起点坐标的字符串        {   scanf("%d",&p); starting[i]=p+'0';        }        starting[n]=0;        for(i=0;i<n;i++) //构造结尾坐标的字符串        {   scanf("%d",&p); ending[i]=p+'0';        }        ending[n]=0;        int count=0;        maps.clear();        char path[15]; //一条相邻路径        while(scanf("%d",&p))        {   if(p==-1) break; int start,end; path[0]=p+'0';  //构造相邻路径起点坐标的字符串 for(i=1;i<n;i++) {   scanf("%d",&p);     path[i]=p+'0'; } path[n]=0; start=build(path,count); //实现字符串映射成数字,构造并查集 for(i=0;i<n;i++) {   scanf("%d",&p);     path[i]=p+'0'; } path[n]=0; end=build(path,count); //实现字符串映射成数字,构造并查集 int h1=find(start); int h2=find(end); if(h1!=h2) fa[h1]=h2; //一个新的根节点       }       int possible=1;       if(maps.find(string(starting))==maps.end()||maps.find(string(ending))==maps.end()) possible=0;  //不在路径中       else       {    int start=maps[string(starting)]; int end=maps[string(ending)]; int h1=find(start); int h2=find(end); if(h1!=h2) possible=0;  //根节点不相同       }       if(possible) printf("Maze #%d can be travelledn",number++);       else printf("Maze #%d cannot be travelledn",number++);   }return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/372798.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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