求助昨天Atcoder D题目
  • 板块学术版
  • 楼主SansPapyrus
  • 当前回复7
  • 已保存回复7
  • 发布时间2023/1/16 15:06
  • 上次更新2023/10/24 04:00:28
查看原帖
求助昨天Atcoder D题目
749548
SansPapyrus楼主2023/1/16 15:06

代码只差一个点TLE... :-(

#pragma GCC optimize(3, "Ofast", "inline")
#include <bits/stdc++.h>
using namespace std;
map<string, vector<string> > a;
map<string, bool> f;
set<string> fr;
map<string, bool> dnt;
bool h(const string& t) {
	if (f[t] == true)
		return true;
	f[t] = true;
	dnt[t] = true;
	for (const string& i : a[t])
		if (h(i) == true)
			return true;
	return false;
}
int main() {
	int n;
	scanf("%d", &n);
	for (register int i = 0; i < n; ++i) {
		string tmp1, tmp2;
		cin >> tmp1 >> tmp2;
		a[tmp1].push_back(tmp2);
		fr.insert(tmp1);
	}
	bool flag = false;
	for (auto i : fr) {
		if (dnt[i] == false) {
			flag = flag || h(i);
			f.clear();
		}
	}
	printf("%s", (flag ? "No":  "Yes"));
	return 0;
}
2023/1/16 15:06
加载中...