2 条题解

  • 0
    @ 2025-1-17 9:19:08
    #include<bits/stdc++.h>
    using namespace std;
    const int N = 1010;
    bool G[N][N];
    bool res[N];
    int deg[N];
    int main(){
        freopen("p.in","r",stdin);
        freopen("p.out","w",stdout);
        int t;
        cin >> t;
        while(t --){
            memset(G,0,sizeof G);
            memset(deg,0,sizeof deg);
            memset(res,true,sizeof res);
            int ans = 0;
            int n;
            cin >> n;
            for (int i = 1; i < n; i ++) {
                int x, y;
                cin >> x >> y;
                G[x][y] = 1;
                deg[x] ++;
            }
            //cout << deg[5] << endl;
            for (int i = 1; i <= n; i ++) {
                for (int j = 1; j <= n; j ++) {
                    if (G[i][j] && deg[i] < deg[j]){ 
                        res[i] = false;
                        break;
                    }
                    if(G[j][i] && deg[i] < deg[j]){
                        res[i] = false;
                        break;
                    }
                }
            }
            ans = 0;
            for (int i = 1; i <= n; i ++) if(res[i]) {
                //cout << i << endl;
                ans++;
            }
            cout << ans << endl;
        }                  
        
        return 0;
    }
    

    信息

    ID
    436
    时间
    1000ms
    内存
    256MiB
    难度
    9
    标签
    (无)
    递交数
    336
    已通过
    34
    上传者