求助RE
  • 板块灌水区
  • 楼主LonelyPatient
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/8/4 21:13
  • 上次更新2024/8/4 21:25:28
查看原帖
求助RE
1158060
LonelyPatient楼主2024/8/4 21:13

CF164A

#include <bits/stdc++.h>
#define ll long long
using namespace std;
const int N = 1e6 + 10;
ll n, m, c, l;
ll f[N];
vector <ll> v[N], use;
ll p[N];
bool vis[N];
void dfs (ll u) {
	p[++ l] = u;
	if (f[u] == 2) {
		for (int i = 1; i <= l; ++ i) {
			vis[p[i]] = true;
		}
	}
	ll sz = v[u].size ();
	for (int i = 0; i < sz; ++ i) {
		ll y = v[u][i];
		if (f[y] != 1) {
			dfs (y);
		}
	}	
}
int main () {
	cin >> n >> m;
	for (int i = 1; i <= n; ++ i) {
		cin >> f[i];
		if (f[i] == 1) {
			use.push_back (i);
		}
	}
	for (int i = 1; i <= m; ++ i) {
		ll x, y;
		cin >> x >> y;
		v[x].push_back (y);
	}
	ll sz = use.size ();
	for (int i = 0; i < sz; ++ i) {
		l = 0;
		ll u = use[i];
		c = u;
		dfs (u);
	}
	for (int i = 1; i <= n; ++ i) {
		if (vis[i]) {
			cout << 1 << '\n';
		}
		else {
			cout << 0 << '\n';
		}
	}
	return 0;
}

RE on test 5

求一个RE的理由

2024/8/4 21:13
加载中...