zoukankan      html  css  js  c++  java
  • [usaco]Controlling Companies

    题意:给你n个公司股份的关系,一个公司控制另一个公式的条件是这个公司拥有另一个公司50% 或以上的股份,或者这个公司控制的子公司拥有另一家公司的股份总数>=50%;

    解题思路:对每一个公司进行查找,对它的子公司进行搜索,如果多出来了一个子公司,则重新搜索这个公司

    解题代码:

     1 // File Name: concom.c
     2 // Author: darkdream
     3 // Created Time: 2013年12月11日 星期三 13时12分05秒
     4 /*
     5 ID: dream.y1
     6 PROG: concom
     7 LANG: C++
     8 */
     9 #include<stdio.h>
    10 #include<string.h>
    11 #include<stdlib.h>
    12 #include<time.h>
    13 #include<math.h>
    14 int hs[200][200] = {0};
    15 double map[200][200] = {0};
    16 int k;
    17 int visit[200] = {0};
    18 void dfs()
    19 {
    20     for(int i = 1;i <= 100 ;i ++)
    21     {
    22       int ok = 0 ;
    23       if(hs[k][i] && !visit[i] )
    24       {
    25          visit[i] = 1;
    26          for(int j = 1;j <= 100 ;j ++)
    27          {
    28             map[k][j] += map[i][j];
    29             if(map[k][j] >= 0.5)
    30             {
    31                hs[k][j] = 1; 
    32                ok = 1;
    33             }
    34          }
    35          
    36       }
    37       if(ok)
    38           i = 0 ;
    39     }
    40 }
    41 int main(){
    42     freopen("concom.in","r",stdin);
    43     freopen("concom.out","w",stdout);
    44     int n ;
    45     scanf("%d",&n);
    46     for(int i = 1;i <= n;i ++)
    47     {
    48         int a, b ,temp;
    49         scanf("%d %d %d",&a,&b,&temp);
    50         map[a][b] = temp*1.0/100;
    51         if(map[a][b] >=  0.5- 1e-8)
    52         {
    53             hs[a][b] = 1;
    54         }
    55     }
    56     for(k =1 ;k <= 100; k ++)
    57     {
    58         memset(visit,0,sizeof(visit));
    59         visit[k] = 1;
    60         dfs();
    61     }
    62     for(int i = 1;i <= 100;i ++)
    63         for(int j = 1; j<= 100  ;j ++)
    64         {
    65             if(hs[i][j] && i != j )
    66                 printf("%d %d
    ",i,j);
    67         }
    68     return 0 ;
    69 }
    View Code
    没有梦想,何谈远方
  • 相关阅读:
    JIRA 6.3.6安装
    Mac安装Protobuf
    Linux 磁盘测速
    rsync快速删除海量文件
    Linux 修改主机名
    查看java进程中哪个线程在消耗系统资源
    redis安装
    springmvc返回中文乱码问题
    java.lang.NumberFormatException: multiple points问题
    谈谈java多线程(一)
  • 原文地址:https://www.cnblogs.com/zyue/p/3470498.html
Copyright © 2011-2022 走看看