• 1208. Legendary Teams Contest(dfs)


    1208

    简单dfs 对于每个数 两种情况 取还是不取

     1 #include <iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<algorithm>
     5 #include<stdlib.h>
     6 #include<map>
     7 #include<string>
     8 using namespace std;
     9 map<string,int>f;
    10 struct node
    11 {
    12     int a,b,c;
    13 }p[20];
    14 int n,maxz;
    15 int vis[60];
    16 int judge(node x,node y)
    17 {
    18     if(x.a==y.b||x.a==y.a||x.a==y.c)
    19     return 0;
    20     if(x.b==y.b||x.b==y.a||x.b==y.c)
    21     return 0;
    22     if(x.c==y.b||x.c==y.a||x.c==y.c)
    23     return 0;
    24     return 1;
    25 }
    26 void dfs(int v,int u)
    27 {
    28     maxz = max(maxz,v);
    29     if(u>n)
    30     return ;
    31     if(!vis[p[u].a]&&!vis[p[u].b]&&!vis[p[u].c])
    32     {
    33         vis[p[u].a] = vis[p[u].b] = vis[p[u].c] = 1;
    34         dfs(v+1,u+1);
    35         vis[p[u].a] = vis[p[u].b] = vis[p[u].c] = 0;
    36     }
    37     dfs(v,u+1);
    38 }
    39 int main()
    40 {
    41     int i,g=0;
    42     char s1[22],s2[22],s3[22];
    43     scanf("%d",&n);
    44     for(i = 1 ;i <= n ; i++)
    45     {
    46         scanf("%s%s%s",s1,s2,s3);
    47         if(!f[s1])
    48         {
    49             g++;
    50             f[s1] =  g;
    51         }
    52         if(!f[s2])
    53         {
    54             g++;
    55             f[s2] = g;
    56         }
    57         if(!f[s3])
    58         {
    59             g++;
    60             f[s3] = g;
    61         }
    62         p[i].a = f[s1];
    63         p[i].b = f[s2];
    64         p[i].c = f[s3];
    65     }
    66     for(i = 1 ;i <= n ; i++)
    67     {
    68         vis[p[i].a] = vis[p[i].b] = vis[p[i].c] = 1;
    69         dfs(1,i+1);
    70         vis[p[i].a] = vis[p[i].b] = vis[p[i].c] = 0;
    71     }
    72     printf("%d
    ",maxz);
    73     return 0;
    74 }
    View Code
  • 相关阅读:
    python中进程池和回调函数
    python网络编程中互斥锁与进程之间的通信
    python支持的进程与线程
    python网络编程之进程
    python网络编程之粘包
    python中socket编程
    python的异常处理
    webstorm(四):webstrom配置一键修复ESLint的报错
    JavaScript Array map() 方法
    ES6之Array.includes()函数
  • 原文地址:https://www.cnblogs.com/shangyu/p/3352396.html
Copyright © 2020-2023  润新知