tiao_
查看原帖
tiao_
1286053
Nostopathy楼主2024/7/7 17:06
#include <iostream>
#include <vector>
using namespace std;
int a[1001], tot[1001], vis[1001];
vector <int> graph[1001];
int u, v, k, n, m, r;
void search(int num){
	vis[num] = 1;
	++ tot[num];
	for(int i = 0; i < graph[num].size(); ++ i){
		if(not vis[graph[num][i]]){
			search(graph[num][i]);
		}
	}
}
int main(){
	cin >> k >> n >> m;
	for(int i = 1; i < n + 1; ++ i){
		cin >> a[i];
	}
	for(int i = 0; i < m; ++ i){
		cin >> u >> v;
		graph[u].push_back(v);
	}
	for(int i = 1; i < k + 1; ++ i){
		for(int j = 1; j < n + 1; ++ j){
			vis[j] = false;
		}
		search(a[i]);
	}
	for(int i = 1; i < n + 1; ++ i){
		if(tot[i] == k){
			++ r;
		}
	}
	cout << r << '\n';
}

测试点信息:√×√√√×√×√×帮帮忙

2024/7/7 17:06
加载中...