栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

poj 2146 Confusing Login Names

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

poj 2146 Confusing Login Names

#include <cstdio>#include <string.h>#include <algorithm>#define INF 0x3fffffffusing namespace std;struct cstr{    char s[22];    bool operator <(const cstr& c)const{        return strcmp(s,c.s)<0;    }}st[205];int n,dis,d[20][20];int dp(char *s1,char *s2){    int l1=strlen(s1),l2=strlen(s2);    memset(d,0,sizeof d);    for(int i=1;i<=l2;i++)d[0][i]=i;    for(int i=1;i<=l1;i++)d[i][0]=i;    for(int i=1;i<=l1;i++){        for(int j=1;j<=l2;j++){ d[i][j]=INF; if(s1[i-1]==s2[j-1]){     d[i][j]=d[i-1][j-1]; }else{     d[i][j]=min(d[i][j-1],min(d[i-1][j],d[i-1][j-1]))+1; } if(i>=2&&j>=2&&s1[i-2]==s2[j-1]&&s1[i-1]==s2[j-2]){     d[i][j]=min(d[i][j],d[i-2][j-2]+1); } if(i>=2&&j>=3&&s1[i-2]==s2[j-1]&&s1[i-1]==s2[j-3]){     d[i][j]=min(d[i][j],d[i-2][j-3]+2); } if(i>=3&&j>=2&&s1[i-1]==s2[j-2]&&s1[i-3]==s2[j-1]){     d[i][j]=min(d[i][j],d[i-3][j-2]+2); }        }    }    return d[l1][l2];}int main(){        while(scanf("%d",&n),n){        scanf("%d",&dis);        for(int i=0;i<n;i++)scanf("%s",st[i].s);        sort(st,st+n);        int tot=0;        for(int i=0;i<n;i++){ for(int j=i+1;j<n;j++){     int x=dp(st[i].s,st[j].s);     if(x<=dis){         tot++;         printf("%s,%sn",st[i].s,st[j].s);     } }        }        printf("%dn",tot);    }    return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/380578.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号