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

poj 2639 Necklace Decomposition

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

poj 2639 Necklace Decomposition

#include<stdio.h>#include<string.h>#include<string>#include<vector>#include<algorithm>#include<iostream>using namespace std;int Minstring(char *s,int n){         int i,j,x,y,u,v;         for(x=0,y=1;y<n;y++) if(s[y]<=s[x]){       i=u=x;j=v=y;       while(s[i]==s[j])       {     ++u;if(++i==n) j=0;     ++v;if(++j==n) j=0;     if(i==x) break;       }       if(s[i]<=s[j]) y=v;       else{     x=y;if(u>y) y=u;       }         }         return x;}char  s[111];int nbs[111],eu[5555],next[5555],ev[5555],now;void add(int u,int v){         ++now;eu[now]=u;next[now]=nbs[u];nbs[u]=now;ev[now]=v;}int pre[111];void dfs(int u){         int i,v,j;         for(i=nbs[u];i;i=next[i])         {       v=ev[i];       if(u==0) {     pre[v]=u;dfs(v);       }       else{  char t[101];  int l=0;  string x1,x2;  for(j=pre[u];j<u;j++) t[l++]=s[j],x1+=s[j];  for(j=u;j<v;j++) t[l++]=s[j],x2+=s[j];  t[l]='n';  if(x1>x2&&Minstring(t,l)){pre[v]=u;dfs(v);  }       }         }}int main(){         int T;scanf("%d",&T);         while(T--)         {       scanf("%s",s);       int cnt1=0,cnt2=0;       //cout<<s<<endl;       memset(nbs,0,sizeof(nbs));       now=0;       int i,j,k,len=strlen(s);       for(i=0;i<len;i++)       {     if(s[i]=='0') cnt1++;     else cnt2++;       }       if(cnt1==len||cnt2==len)       {     printf("(%s)n",s);continue;       }       for(i=0;i<len;i++)       {     char  t[111];     int l=0;     for(j=i;j<len;j++)     {   t[l++]=s[j];t[l]='';   int pos=Minstring(t,l);   if(pos==0)   { add(i,j+1); //printf("%d %dn",i,j);   }     }       }       dfs(0);       int stk[111],tot=0;k=len;       while(k)       {     //printf("%d  ",k);     stk[++tot]=k;     k=pre[k];       }       printf("(");       j=tot;       for(i=0;i<len;i++)       {     if(i==stk[j])     {   printf(")(");j--;     }     printf("%c",s[i]);       }       printf(")n");         }         return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/380156.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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