问题出在哪里了呢
查看原帖
问题出在哪里了呢
53141
芝麻馅儿汤圆楼主2021/7/13 23:51
#include <iostream>
#include <stdio.h>
#include <cstdio>
#include <string.h>
using namespace std;
int a[20005];
string b[20005];
string aaa, bbb;
int M, N;
short num1 = 0, num2 = 0;
int find(int xx)
{
    if(a[xx] == xx) 
        return xx;
    return a[xx] = find(a[xx]);
}
int findfor(string name)
{
	for (int i = 1; i <= M; i++)
		if (name == b[i]) return i;
}
int main()
{
	cin >> M >> N;
	for(int i = 1; i <= M; i++)
	{
		cin >> b[i];
		a[i] = i;
	}
	for(int i = 1; i <= N; i++)   
	{
		cin >> aaa >> bbb;
		num1 = findfor(aaa);
		num2 = findfor(bbb);
		a[find(num1)] = find(num2);
	}
	cin >> M;
	for(int i = 1; i <= M; i++)
	{
		cin >> aaa >> bbb;
		num1 = findfor(aaa);
		num2 = findfor(bbb);
		if(find(num1) == find(num2)) 
            printf("Yes.\n");
        else
            printf("No.\n");
	}
	return 0;
}
2021/7/13 23:51
加载中...