1 条题解

  • 0
    @ 2024-4-5 11:14:05

    要注意连环炸和对已经炸过的炸弹处理 用递推会很好写

    #include<bits/stdc++.h>
    using namespace std;
    long long n,p[101010],kp[101010], ans;
    void boom(int x)
    {
    	if(kp[x]!=0)
    	{
    		kp[x]=0;
    		ans--;
    		boom(p[x]);
    	}
    }
    
    int main()
    {
    	cin>>n;
    	ans=n;
    	for(int i=1;i<=n;i++)
    	{
    		cin>>p[i];
    		kp[i]=1;
    	}
    	
    	for(int i=1;i<=n;i++)
    	{
    		boom(i);
    		cout<<ans<<' ';
    	}
    	
    	return 0;
    }
    
    • 1

    信息

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