数据有点水
查看原帖
数据有点水
1743994
lsgjzqh楼主2025/7/23 11:38

用这种方法竟然能过

#include<bits/stdc++.h>
using namespace std;
bool g[1005][1005];
int cow[105];
int main(){
    int k, n, m;
    scanf("%d%d%d", &k, &n, &m);
    for(int i = 1; i <= k; i++){
        scanf("%d", &cow[i]);
    }
    for(int i = 1; i <= m; i++){
        int x, y;
        scanf("%d%d", &x, &y);
        g[x][y] = true;
    }
    for(int l = 1; l <= n; l++){
        g[l][l] = true;
        for(int i = 1; i <= n; i++){
            for(int j = 1; j <= n; j++){
                if(g[i][l] && g[l][j]) {
                    g[i][j] = true;
                }
            }
        }
    }
    int ans = 0;
    for(int i = 1; i <= n; i++){
        int flag = 0;
        for(int j = 1; j <= k; j++){
            if(!g[cow[j]][i]){
                flag = 1;
                break;
            }
        }
        if(flag == 0){
            ans++;
        }
    }
    printf("%d", ans);
    return 0;
}

我在学校的OJ上都过不了

2025/7/23 11:38
加载中...