poj 1409(水题)

复制代码
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
struct node{
    char result[305][55];
    int len;
};
node r[305];
char a[105][55],sequence[305],seqCh[305][55];
int rCnt,cnt,n,d[] = {2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,7,8,8,8,9,9,9,9};
bool flag;
int cmp(node ra,node rb){
    int len = min(ra.len,rb.len);
    for(int i=0;i<len;i++){
        if(strcmp(ra.result[i],rb.result[i])<0)return true;
        if(strcmp(ra.result[i],rb.result[i])>0)return false;
    }
}
void dfs(int p,int q){
    if(p==q){
        r[rCnt].len = cnt;
        for(int i=0;i<cnt;i++){
            strcpy(r[rCnt].result[i],seqCh[i]);
        }
        rCnt++;
    }
    for(int i=0;i<n;i++){
        flag = true;
        for(int j=0;j<strlen(a[i]);j++){
            if(sequence[p+j]!=d[a[i][j]-'a']+'0'){
                flag = false;
                break;
            }
        }
        if(flag){
            strcpy(seqCh[cnt++],a[i]);
            dfs(p+strlen(a[i]),q);
            cnt--;
        }
    }
}
int main(){
    while(scanf("%d",&n)==1&&n){
        for(int i=0;i<n;i++){
            scanf("%s",a[i]);
        }
        scanf("%s",sequence);
//        for(int i=0;i<n;i++){
//            for(int j=0;j<strlen(a[i]);j++){
//                cout<<data[i][j];
//            }
//            cout<<endl;
//        }
        rCnt = 0;
        dfs(0,strlen(sequence));
        sort(r,r+rCnt,cmp);
        for(int i=0;i<rCnt;i++){
            for(int j=0;j<r[i].len-1;j++){
                cout<<r[i].result[j]<<" ";
            } 
            cout<<r[i].result[r[i].len-1]<<"."<<endl;
        }
        cout<<"--"<<endl;
    }
    return 0;
}
复制代码

 

posted @   智人心  阅读(21)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
点击右上角即可分享
微信分享提示