80双mle求调

P1983 [NOIP2013 普及组] 车站分级

StenvenPig @ 2023-10-05 16:55:29

#include<bits/stdc++.h>
using namespace std;
vector<int> a[1010];
int m,n,b[1010];
int main() {
    cin>>m>>n;
    for(int i=1;i<=n;i++){
        int s;
        cin>>s;
        int last;
        cin>>last;
        vector<int>x,y;
        x.push_back(last);
        for(int j=2;j<=s;j++){
            int t;
            cin>>t;
            x.push_back(t);
            for(int k=last+1;k<t;k++) y.push_back(k);
            last=t;
        }
        for(int j:x){
            for(int k:y){
                a[j].push_back(k);
                b[k]++;
            }
        }
    }
    int tot=0,ans=0;

    while (tot<m){
        ans++;
        vector<int> nd;
        for(int i=1;i<=m;i++){

            if(!b[i]){
                nd.push_back(i);    
            }
        }
        for(auto x:nd){
            b[x]=-1;
            for(auto i:a[x]){
                b[i]--;
            }
            tot++;
        }
    }
    cout<<ans;
    return 0;
}

|