6AC 4WA(#5 #7 #8 #10) 求助!
查看原帖
6AC 4WA(#5 #7 #8 #10) 求助!
743396
luohuohuo楼主2023/8/16 08:43

看哪些牧场有牛cowpt[]

每个有牛的牧场遍历一遍看能走到哪里

都能走到的(ans[] == k)就是答案

#include <bits/stdc++.h>
using namespace std;

const int N=1005;
int n,m,k;
vector<int> v[N];
bool cowpt[N];
bool f[N];
int ans[N];

void F(int x)
{
    ans[x]++;
    for(int i=0;i<int(v[x].size());i++)
        if(!f[v[x][i]])
        {
            f[v[x][i]] = 1;
            F(v[x][i]);
        }
}

int main()
{
    cin >> k >> n >> m;
    for(int i=1;i<=k;i++)
    {
        int x;
        cin >> x;
        cowpt[x] = 1;
    }
    for(int i=1;i<=m;i++)
    {
        int x,y;
        cin >> x >> y;
        v[x].push_back(y);
    }
    
    
    for(int i=1;i<=n;i++)
    {
        memset(f,0,sizeof(f));
        if(cowpt[i]){
            f[i] = 1;
            F(i);
        }    
    }
    
    int cnt=0;
    for(int i=1;i<=n;i++)
        if(ans[i] == k)
            cnt++;
    cout << cnt;        
    return 0;
}
2023/8/16 08:43
加载中...