社区讨论

0分求助

P2814家谱参与者 2已保存回复 2

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
2 条
当前快照
1 份
快照标识符
@lo7xrefp
此快照首次捕获于
2023/10/27 09:29
2 年前
此快照最后确认于
2023/10/27 09:29
2 年前
查看原帖
代码如下,样例过了,提交上去全WA
CPP
#pragma warning(disable:4703)
#include<iostream>
#define N 50005
using namespace std; 

struct node {
	string name; 
	node* f; 
};

node* m[N]; 
int l = 0; 

string input() {
	char c; 
	string res = "";
	c = getchar(); 
	while (c != '\n') {
		res += c; 
		c = getchar(); 
	}
	return res; 
}

node* find(string x) {
	for (int i = 1; i <= l; ++i) {
		if (m[i]->name == x) {
			return m[i]; 
		}
	}
	m[++l] = new node(); 
	m[l]->name = x; 
	return m[l];
}

int main()
{
	char c; 
	string s; 
	c = getchar(); 
	node* f; 
	while (c != '$') {
		s = input(); 
		node* res = find(s);
		if (c== '#') {
			f = res;
		}
		if (c == '+') {
			res->f = f;
		}
		if (c == '?') {
			cout << res->name << ' '; 
			while (res->f != nullptr) {
				res = res->f; 
			}
			cout << res->name << endl; 
		}
		c = getchar(); 
		while (c=='\n')
			c = getchar();
	}
	return 0; 
}

回复

2 条回复,欢迎继续交流。

正在加载回复...