zoukankan      html  css  js  c++  java
  • UESTC OJ 1824 Judgment Day 递归搜索

    这题就是写个DFS,搞定,比赛的时候没有看到N<=10,不敢暴力,因为这个的复杂度为2^n.看题一定要认真啊啊啊啊!!!!!

    枚举所有的可能,每个人都有两种情况,一是spell他的名字,一个是不spell.所以一共有2^n种情况,当然,名字拼不出来就只有一种,就是不spell

    .简单吧,用递归写,我一般都把递归写的叫DFS。

    贴代码:

    View Code
     1 #include <cstdio>
     2 #include <cstring>
     3 int n;
     4 int num[30];
     5 int pn[11][30];
     6 int max;
     7 void dfs(int x,int m)
     8 {
     9     if(x == n)
    10     {
    11         if(m > max) max = m;
    12         return;
    13     }
    14     int i;
    15     for(i=0; i<26; ++i)
    16     {
    17         if(num[i] < pn[x][i])
    18             break;
    19     }
    20     if(i == 26)
    21     {
    22         for(int j = 0; j< 26; ++j)
    23             num[j] -= pn[x][j];
    24         dfs(x+1,m+1);
    25         for(int j = 0; j< 26; ++j)
    26             num[j] += pn[x][j];
    27         dfs(x+1,m);
    28     }
    29     else
    30     {
    31         dfs(x+1,m);
    32     }
    33 }
    34 int main()
    35 {
    36 //    freopen("in.cpp","r",stdin);
    37     char a[100005],p[100005];
    38     int T;
    39     scanf("%d",&T);
    40     for(int i=1; i<=T; ++i)
    41     {
    42         scanf("%s",a);
    43         int len = strlen(a);
    44         memset(num,0,sizeof(num));
    45         memset(pn,0,sizeof(pn));
    46         for(int k=0; k<len; ++k)
    47         {
    48             ++num[a[k]-'a'];
    49         }
    50         scanf("%d",&n);
    51         for(int k=0; k<n; ++k)
    52         {
    53             scanf("%s",p);
    54             len = strlen(p);
    55             for(int s=0; s<len; ++s)
    56             {
    57                 ++pn[k][p[s]-'a'];
    58             }
    59         }
    60         printf("Case #%d: ",i);
    61         max = 0;
    62         dfs(0,0);
    63         printf("%d\n",max);
    64     }
    65     return 0;
    66 }
  • 相关阅读:
    MySQL (一)(未完成)
    HTML 学习笔记 CSS3 (边框)
    HTML 学习笔记 JavaScript (函数)
    HTML 学习笔记 JavaScript (对象)
    HTML 学习笔记 JavaScript (变量)
    HTML 学习笔记 JavaScript (实现)
    HTML 学习笔记 JavaScript(简介)
    iOS RunTime运行时(1):类与对象
    iOS UITableView 分割线从零开始
    HTML 学习笔记 CSS(选择器4)
  • 原文地址:https://www.cnblogs.com/allh123/p/3041048.html
Copyright © 2011-2022 走看看