Niu Ke oj Ejercicio 11.1 Búsqueda de miembros de la familia inmediata (registro predecesor)

 

Enlace del título: https://www.nowcoder.com/practice/2c958d09d29f46798696f15ae7c9703b?tpId=40&tqId=21453&tPage=1&rp=1&ru=/ta/kaoyan&qru=/ta/kaoyan/question-ranking

Idea: En realidad, no entiendo por qué este problema tiene que estar relacionado con la búsqueda paralela. Si el problema se resuelve mediante una relación directa, ¿es un poco excesivo usar la búsqueda paralela?

La matriz hijo [i] representa los hijos del nodo i.

 

 

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <string>
#include <cstring>
#include <vector>
#include <queue>
#include <cctype>
#include <climits>
 
using namespace std;
 
const int MAXN = 30000;
const int INF = INT_MAX;

int main(){
//	freopen("in.txt", "r", stdin);
	int n, m;
	char son[MAXN];
	string str; 
	while(~scanf("%d %d", &n, &m)){
		for(int i = 0; i < 27; i++){
			son['A' + i] = '#';
		}
		for(int i = 0; i < n; i++){
			cin >> str;
			if(isupper(str[1])) son[str[1]] = str[0];
			if(isupper(str[2])) son[str[2]] = str[0];
		}
		for(int i = 0; i < m; i++){
			cin >> str;
			bool flag = false;
			int count = 0;
			char tmp = str[0];
			while(son[tmp] != '#'){
				tmp = son[tmp];
				count++;
				if(tmp == str[1]){
					flag = true;
					break;
				}
			}
			if(!flag){
				count = 0;
				tmp = str[1];
				while(son[tmp] != '#'){
					tmp = son[tmp];
					count--;
					if(tmp == str[0]){
						flag = true;
						break;
					}
				}
			}
			if(!flag) printf("-\n");
			else{
				if(count == 1) printf("parent\n");
				else if(count == 2) printf("grandparent\n");
				else if(count >= 3){
					while(count > 2){
						printf("great-");
						count--;
					}
					printf("grandparent\n");
				}
				else if(count == -1) printf("child\n");
				else if(count == -2) printf("grandchild\n");
				else if(count <= -3){
					while(count < -2){
						printf("great-");
						count++;
					}
					printf("grandchild\n");
				}
			}
		}
	}
	return 0;
}

 

411 artículos originales publicados · Me gusta 72 · Visitas 160,000+

Supongo que te gusta

Origin blog.csdn.net/Flynn_curry/article/details/105419772
Recomendado
Clasificación