zoukankan      html  css  js  c++  java
  • HDU 6152 Friend-Graph

    http://acm.hdu.edu.cn/showproblem.php?pid=6152

    题意:

    一个团队如果存在三个或者三个以上的人互为朋友的关系,或者都不是朋友的关系,那么就说明这个团队是一个坏团队,否则输出好团队。

    思路:

    比赛完了之后再去网上看了一下大家的做法,发现很多人都是直接暴力的。。。

    还有人直接根据定理:6个人中必有3个人互相认识或互相不认识。。。

    当时我想的是根据度数来判断,每个点的度数不能超过2,并且度数为1的点和度数为0的点的个数也是有限制的,具体参见代码。

     1 #include<iostream>
     2 #include<algorithm>
     3 #include<cstring>
     4 #include<cstdio>
     5 #include<sstream>
     6 #include<vector>
     7 #include<stack>
     8 #include<queue>
     9 #include<cmath>
    10 #include<map>
    11 #include<set>
    12 using namespace std;
    13 typedef long long ll;
    14 typedef pair<int,ll> pll;
    15 const int inf = 0x3f3f3f3f;
    16 const int maxn=3000+5;
    17 const int mod=1e9+7;
    18 
    19 int n, m;
    20 int degree[maxn];
    21 
    22 int main()
    23 {
    24     //freopen("in.txt","r",stdin);
    25     int T;
    26     scanf("%d",&T);
    27     while(T--)
    28     {
    29         memset(degree,0,sizeof(degree));
    30         scanf("%d",&n);
    31         for(int i=1;i<n;i++)
    32         {
    33             for(int j=1;j<=n-i;j++)
    34             {
    35                 int x;
    36                 scanf("%d",&x);
    37                 if(x==1)  {degree[i]++;degree[i+j]++;}
    38             }
    39         }
    40         int cnt0=0,cnt1=0,cnt2=0;;
    41         bool flag=true;
    42         for(int i=1;i<=n;i++)
    43         {
    44             if(degree[i]>2)  {flag=false;break;}
    45             else if(degree[i]==1)  cnt1++;
    46             else if(degree[i]==0)  cnt0++;
    47             else cnt2++;
    48         }
    49         if(flag)
    50         {
    51             if(cnt2==0)
    52             {
    53                 if(cnt1/2+cnt0<3) puts("Great Team!");
    54                 else puts("Bad Team!");
    55             }
    56             else
    57             {
    58                 if(cnt1+cnt0<3)  puts("Great Team!");
    59                 else puts("Bad Team!");
    60             }
    61         }
    62         else puts("Bad Team!");
    63     }
    64     return 0;
    65 }
  • 相关阅读:
    计算机语言发展简史
    HTML—xhtml和html5
    网络协议模型【简图】
    http协议
    URL简介
    TCP协议简介
    比较浏览器的“刷新”
    loadrunner之运行方式:线程还是进程?
    LoadRunner的函数
    LoadRunner测试结果分析
  • 原文地址:https://www.cnblogs.com/zyb993963526/p/7398158.html
Copyright © 2011-2022 走看看