1 条题解

  • 0
    @ 2025-7-4 9:48:57
    #include<cstdio>
    #include<cstring>
    #include<iostream>
    using namespace std;
    int n,a[110][110],f[110];
    bool v[110],c[110];
    void dfs(int k)
    {
    	if(v[k]==true) return;
    	v[k]=true;
    	for(int i=1;i<=n;i++)
    	{
    		f[i]+=a[k][i];
    		if(f[i]>50)
    		{
    			c[i]=true;
    			dfs(i);
    		}
    	}
    }
    int main()
    {
    	int i,j,x,y,z,t;
    	scanf("%d",&t);
    	for(i=1;i<=t;i++) 
    	{
    		scanf("%d%d%d",&x,&y,&z);
    		a[x][y]=z;n=max(n,max(x,y));
    	}
    	for(i=1;i<=n;i++)
    	{
    		memset(v,false,sizeof(v));
    		memset(c,false,sizeof(c));
    		memset(f,0,sizeof(f));
    		dfs(i);
    		for(j=1;j<=n;j++)
    			if(c[j]==true && i!=j)
    				printf("%d %d\n",i,j);
    	}
    	return 0;
    }
    
    • 1

    信息

    ID
    292
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    (无)
    递交数
    165
    已通过
    57
    上传者