• hdu 1515 dfs


    题意:告诉你两个字符串a和b,要求对a进行栈的操作而产生b串,输出操作的顺序,如果有多组输出就按字典序输出。
    Sample Input
    madam
    adamm
    long
    short
    Sample Output
    [
    i i i i o o o i o o
    i i i i o o o o i o
    i i o i o i o i o o
    i i o i o i o o i o
    ]
    [
    i i o i o i o o
    ]

    dfs一直比较弱,虽然想法有,但是总写不好

     1 #include<cstdio>
     2 #include<iostream>
     3 #include<algorithm>
     4 #include<cstring>
     5 #include<cmath>
     6 #include<queue>
     7 #include<map>
     8 #include<stack>
     9 using namespace std;
    10 #define MOD 1000000007
    11 const int INF=0x3f3f3f3f;
    12 const double eps=1e-5;
    13 #define cl(a) memset(a,0,sizeof(a))
    14 #define ts printf("*****
    ");
    15 const int MAXN=1005;
    16 int n,m,tt;
    17 stack<int> s;
    18 char s1[500],s2[500];
    19 int len1,len2;
    20 int num[500];
    21 void dfs(int i,int j,int k)
    22 {
    23     if(j==len2)
    24     {
    25         for(int p=0;p<k;p++)
    26         {
    27             if(num[p])  printf("i ");
    28             else printf("o ");
    29         }
    30         printf("
    ");
    31         return;
    32     }
    33     if(i<len1)
    34     {
    35         s.push(s1[i]);
    36         num[k]=1;
    37         dfs(i+1,j,k+1);
    38         s.pop();
    39     }
    40     if(!s.empty()&&s.top()==s2[j])
    41     {
    42         char mm=s.top();
    43         s.pop();
    44         num[k]=0;
    45         dfs(i,j+1,k+1);
    46         s.push(mm);
    47     }
    48 }
    49 int main()
    50 {
    51     int i,j,k;
    52     #ifndef ONLINE_JUDGE
    53     freopen("1.in","r",stdin);
    54     #endif
    55     while(scanf("%s%s",s1,s2)!=EOF)
    56     {
    57         len1=strlen(s1);
    58         len2=strlen(s2);
    59         printf("[
    ");
    60         dfs(0,0,0);
    61         printf("]
    ");
    62     }
    63 }
  • 相关阅读:
    Bundles
    使用二进制协议 (附源码)
    河内之塔 算法
    什么是DCI
    C#利用ODP.NET往oracle中高效插入百万数据
    分析Sizzle引擎
    data格式加载图片
    jQuery获取checkbox选中项等操作及注意事项
    日期类型函数转换的特殊性
    QT中代码中与设计器中控件信号与SLOT连接(原来还可以这样连接)
  • 原文地址:https://www.cnblogs.com/cnblogs321114287/p/4455425.html
Copyright © 2020-2023  润新知