1 条题解

  • 0
    @ 2024-12-24 10:06:19

    C :

    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    int a[101][101],b[101],count[101],n;
    void dfs(int i)
    {
    	b[i]=1;
    	int j;
    	for(j=1;j<=100;j++)
    	{
    		count[j]+=a[i][j];
    	}
    	for(j=1;j<=100;j++)
    	{
    		if(i!=j&&!b[j]&&count[j]>=50)
    		{
    			dfs(j);
    		}
    	}
    }
    int main()
    {
       int i,A,B,C,j;
       scanf("%d",&n);
       for(i=1;i<=n;i++)
       {
       	  scanf("%d%d%d",&A,&B,&C);
       	  a[A][B]=C;
       }
       	  for(i=1;i<=100;i++)
       	  {
          memset(b,0,sizeof(b)); 
       	  memset(count,0,sizeof(count));
       	  dfs(i);
       	  for(j=1;j<=100;j++)
       	  {
       	  	if(i!=j&&count[j]>=50)
       	  	{
       	  		printf("%d %d\n",i,j);
    		}
    	   }
    	  }
    	return 0;
     } 
    

    C++ :

    #include <iostream>
    #include <iomanip>
    #include <algorithm>
    #include <string>
    #include <cstring>
    #include <cstdio>
    #include <cstdlib>
    #include <cmath>
    #include <ctime>
    using namespace std;
    int N,gs[105][105];
    int main()
    {
    	int i,j,a,b,c;
    	scanf("%d",&N);
    	for (i=0;i<N;i++)
    	{
    		scanf("%d%d%d",&a,&b,&c);
    		gs[a-1][b-1]=c;
    	}
    	for (i=0;i<N;i++)
    	{
    		for (j=0;j<N;j++)
    		{
    			if (gs[i][j]>50)
    				for (a=0;a<N;a++)
    					gs[i][a]+=gs[j][a];
    		}
    	}
    	for (i=0;i<N;i++)
    	{
    		for (j=0;j<N;j++)
    		{
    			if (gs[i][j]>50&&i!=j)
    				printf("%d %d\n",i+1,j+1);
    		}
    	}
    	return 0;
    }
    
    • 1

    信息

    ID
    2660
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者