⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1118.cpp

📁 自己的ac代码 在acm.zju.edu.cn 上的题目
💻 CPP
字号:
#include<stdio.h>
#include<map>
#include<string>
using namespace std;
int n;
map<string,int>ma;
int he[1000000];
int findhead(int t)
{
	if(he[t]==t)return t;
	else
	{
		he[t]=findhead(he[t]);
		return he[t];
	}
}

int main()
{
	int n,i,j,k;
	int T=0;
	int p;
	while(scanf("%d",&n)!=EOF)
	{
		if(n==0)break;
		T++;
		char s[15];
		char ss[15],st[15];
		ma.clear();
		int cnt=0;
		for(i=0;i<n;i++)
		{
			scanf("%d",&p);
			ss[i]=char(p+48);
		}
		ss[n]=0;
		for(i=0;i<n;i++)
		{
			scanf("%d",&p);
			st[i]=char(p+48);
		}
		st[n]=0;
		while(scanf("%d",&p))
		{
			int a1,a2;
			if(p==-1)break;
			s[0]=char(p+48);
			for(i=1;i<n;i++)
			{
				scanf("%d",&p);
				s[i]=char(p+48);
			}
			s[n]=0;
			if(ma.find(string(s))==ma.end())
			{
				ma[string(s)]=++cnt;
				a1=cnt;
				he[cnt]=cnt;
				
			}
			else
			{
				a1=ma[string(s)];
			}
			for(i=0;i<n;i++)
			{
				scanf("%d",&p);
				s[i]=char(p+48);
			}
			s[n]=0;
			if(ma.find(string(s))==ma.end())
			{
				ma[string(s)]=++cnt;
				a2=cnt;
				he[cnt]=cnt;
			}
			else
			{
				a2=ma[string(s)];
			}
			int h1,h2;
			h1=findhead(a1);
			h2=findhead(a2);
			if(h1!=h2)
			{
				he[h1]=h2;
			}
		}
		if(ma.find(string(ss))==ma.end() || ma.find(string(st))==ma.end())
		{
			printf("Maze #%d cannot be travelled\n",T);
		}
		else
		{
			int a1,a2;
			a1=ma[string(ss)];
			a2=ma[string(st)];
			int h2,h1;
			h1=findhead(a1);
			h2=findhead(a2);
			if(h1==h2)
				printf("Maze #%d can be travelled\n",T);
			else printf("Maze #%d cannot be travelled\n",T);
		}
	}
	return 0;
}



			

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -