标签:
# include<iostream> # include<cstdio> # include<map> # include<string> # include<cstring> # include<algorithm> using namespace std; const int N=26*26*26*26+3; int vis[26][26][26][26],n; char ans[N+10]; void get_ans() { memset(vis,0,sizeof(vis)); int pos=0; for(char a=‘a‘;a<=‘z‘;++a) ans[pos++]=a,ans[pos++]=a,ans[pos++]=a,ans[pos++]=a; for(int i=3;i<104;++i) vis[ans[i-3]-‘a‘][ans[i-2]-‘a‘][ans[i-1]-‘a‘][ans[i]-‘a‘]=1; char a=‘z‘; while(pos<456979){ int cnt=0; for(int c=a+1;cnt<2;++c){ if(c>‘z‘){ c=‘a‘; ++cnt; } if(vis[ans[pos-3]-‘a‘][ans[pos-2]-‘a‘][ans[pos-1]-‘a‘][c-‘a‘]) continue; vis[ans[pos-3]-‘a‘][ans[pos-2]-‘a‘][ans[pos-1]-‘a‘][c-‘a‘]=1; ans[pos++]=c; a=c; break; } } } int main() { get_ans(); while(~scanf("%d",&n)) { if(n>N){ printf("Impossible\n"); continue; } for(int i=0;i<n;++i) printf("%c",ans[i]); printf("\n"); } return 0; }
HDU-4850 Wow! Such String! (构造)
标签:
原文地址:http://www.cnblogs.com/20143605--pcx/p/4785563.html