社区讨论

求调!!!

灌水区参与者 2已保存回复 2

讨论操作

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

当前回复
2 条
当前快照
1 份
快照标识符
@m515w5ql
此快照首次捕获于
2024/12/23 22:58
去年
此快照最后确认于
2025/11/04 12:26
4 个月前
查看原帖
CPP
#include<bits/stdc++.h>
#include<unordered_map>
using namespace std;
long long n, ls, lls, k, k2;
bool book[100001];
vector<long long> v[1000001];
unordered_map<int, bool> m[3001];
long long a[1001];
void DFS(int d, int l) {
	m[l][d] = 1;
	for (auto i : v[d]) {
		DFS(i, l);
	}
}
void BFS(int k) {
	queue<int> q;
	q.push(k);
	book[k] = 1;
	memset(book, 0, sizeof(book));
	while (!q.empty()) {
		int ls = q.front();
		q.pop();
		cout << ls << " ";
		for (auto i : v[ls]) {
			if (!book[i]) {
				book[i] = 1;
				q.push(i);
			}
		}
	}
}
int main() {
	cin >> n;
	for (int i = 1; i < n; i++) {
		m[0][i] = 1;
		cin >> ls;
		v[ls].push_back(i);
	}
	for (int i = 1; i < n; i++) {
		DFS(i, i);
	}
	cin >> k;
	while (k--) {
		cin >> k2;
		for (int i = 1; i <= k2; i++) {
			cin >> a[i];
		}
		for (int i = n - 1; i >= 0; i--) {
			bool f = 1;
			for (int j = 1; j <= k2; j++) {
				if (!m[i][a[j]]) {
					f = 0;
					break;
				}
			}
			if (f) {
				cout << i << "\n";
				break;
			}
		}
	}
	return 0;
}

回复

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

正在加载回复...