关注
#include <iostream>
#include <vector>
#include <set>
using namespace std;
int main() {
int n, t, x;
cin >> n;
set<int> monsters;
vector<int> types(n);
vector<int> nodes(n);
for (int i = 0; i < n; ++i) {
cin >> types[i] >> nodes[i];
nodes[i] -= 1;
}
int last = 0;
// 1 说 2 是宝箱 2说3是宝箱, 3说1是宝箱怪,这样的矛盾判断1是宝箱怪
for (int i = 0; i < n; ++i) {
int count = 0;
int k = i;
while (types[k] == 1) {
k = nodes[k];
if (++count >= n) break; // 处理 环
}
if (types[k] == 2 && nodes[k] == i)
monsters.insert(i);
}
// 指向宝箱怪 是 宝箱的 都是 宝箱怪
while (last != monsters.size()) {
last = monsters.size();
for (int i = 0; i < n; ++i) {
if (types[i] == 1 && monsters.find(nodes[i]) != monsters.end()) {
monsters.insert(i);
}
}
}
cout << 0 << " " << monsters.size() << endl;
return 0;
}
查看原帖
点赞 8
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 哪些公司开春招了? #
9333次浏览 115人参与
# 工作压力大怎么缓解 #
137287次浏览 1228人参与
# 上班以后,你还有哪些坚持的爱好? #
6706次浏览 167人参与
# 找工作以来,你最看不惯__ #
12958次浏览 286人参与
# 你都在哪些场所面过试? #
18602次浏览 218人参与
# AI coding的好用工具分享 #
16939次浏览 357人参与
# 实习怎么做才有更好的产出 #
11222次浏览 204人参与
# 实习教会我的事 #
51443次浏览 399人参与
# 你最近因为什么迷茫? #
32634次浏览 462人参与
# 实习离职怎么跟领导说 #
75742次浏览 420人参与
# 实习生工资多少才算正常? #
11941次浏览 189人参与
# 拼多多工作体验 #
44220次浏览 283人参与
# 四大天坑是哪四家? #
99738次浏览 234人参与
# 机械制造面试记录 #
307768次浏览 3152人参与
# 你给AI提过哪些离谱的需求? #
5560次浏览 159人参与
# 领导做过最不靠谱的事 #
12035次浏览 203人参与
# 为了实习逃课值吗? #
61924次浏览 517人参与
# 工作一周年分享 #
49875次浏览 256人参与
# 选offer应该考虑哪些因素 #
139079次浏览 980人参与
# 你想跟着什么样领导? #
47517次浏览 235人参与
