MLE求调
查看原帖
MLE求调
1229738
CyansQwQ楼主2024/8/9 15:50
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e5+10;
vector<int>e[N];
bool vis[N];
int cnt[N];
int a[N];
void solve()
{
	int k,n,m;
	cin>>k>>n>>m;
	for(int i=1;i<=k;i++)
		cin>>a[i];
	for(int i=1;i<=m;i++)
	{
		int x,y;
		cin>>x>>y;
		e[x].push_back(y);
	}
	auto dfs=[&](auto&&self,int x)->void
	{
	    cnt[x]++;
        if(e[x].size()==0)return;
        for(auto y:e[x])
            self(self,y);
	};
    for(int i=1;i<=k;i++)
    	dfs(dfs,a[i]);
    int ans=0;
    for(int i=1;i<=n;i++)
    	if(cnt[i]==k)ans++;
    cout<<ans;
}

signed main()
{
	ios::sync_with_stdio(false);
	cin.tie(0),cout.tie(0);
	solve();return 0;
}
2024/8/9 15:50
加载中...