1 条题解

  • 0
    @ 2026-2-7 16:13:29
    #include<bits/stdc++.h>
    using namespace std;
    const int N=100100;
    struct cow{
    	int f,s;
    }c[N];
    int h[N], res[N],n,m,cur;
    void solve(int x,int y){
    	if(h[y] == 0) {
    		h[y]=x;
    		cur++;
    	}
    	else if(h[y]>x){
    		int z=h[y];
    		h[y]=x;
    		if(y == c[z].f) solve(z,c[z].s);
    	}
    }
    int main()
    {
    	
    	cin>>n>>m;
    	for(int i=1;i <= n;i++) cin>>c[i].f>>c[i].s;
    	for(int i=n-1;i>=0;i -- ) solve(i+1,c[i+1].f),res[i+1]=cur;
    	for(int i=1;i <= n;i++) cout << res[i] << endl;
    	return 0;
    }
    
    • 1

    信息

    ID
    111
    时间
    1000ms
    内存
    125MiB
    难度
    5
    标签
    递交数
    0
    已通过
    0
    上传者