Algorithm 版 (精华区)

发信人: Lerry (life is waiting...), 信区: Algorithm
标  题: 1004K-AnagramsByStack-Zju
发信站: 哈工大紫丁香 (2002年10月06日19:57:45 星期天), 站内信件

这个题目没什么特别的,回溯加上简单的剪枝

#include"stdio.h"
#include"iostream.h"
#include"string.h"
#include"stack"
#include"queue"
using namespace std;
int t=0;
stack<char> ss;
int go(char* qq,int pq,char* src,int ps,char* dest,int pd)
{
    int i;
    char c;
    if(pd>ps||ps>strlen(src)) return 0;
    if(pq==2*strlen(src))
    {
        int k=0,p=0,q=0;
        for(i=0;i<2*strlen(src);i++)
        {
            if(qq[i]=='i')
            {
                ss.push(src[p++]);
            }
            else
            {
                c=ss.top();
                if(dest[q++]!=c)
                    return 0;
                ss.pop();
            }
        }
        for(i=0;i<2*strlen(src);i++)
            printf("%c ",qq[i]);
        printf("\n");
        return 0;
    }
    qq[pq]='i';
    go(qq,pq+1,src,ps+1,dest,pd);
    qq[pq]='o';
    go(qq,pq+1,src,ps,dest,pd+1);
    return 0;
}
int main()
{
#ifndef ONLINE_JUDGE
    freopen("anagrams.in","r",stdin);
#endif
    char src[100],dest[100],qq[100];
    char test[100];
    memset(test,0,100);
    int pos=0;
    memset(qq,0,100);
    while(gets(src),gets(dest))
    {
        printf("[\n");
        go(qq,0,src,0,dest,pos);
        printf("]\n");
    }
    return 0;
}
--
5、在快餐店送汉堡包并不是作践自己,你的祖父母对此

有另外的理解:机会。

                                    ——比尔·盖茨

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.249.231]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.687毫秒