hdu 4850 Wow! Such String! 欧拉回路
2014-11-07 00:00
411 查看
作者:jostree 转载请注明出处 /article/7172708.html
题目链接:hdu 4850 Wow! Such String! 欧拉回路
长度为4的由26个字母组成的字符串一共有$4^{26}$种,从aaaa开始,在加上结尾的aaa那么该字符串长度为$4^{26}+3$。当字符串i的后三个字母和字符串j的前三个字母相同则ij有一条边,遍历所有的边可以构成一个欧拉回路。
首先构造aaaabbbb...zzzz的字符串,然后依次向结尾添加符合条件的字符串,直到遍历完所有的边为止。
代码如下:
View Code
题目链接:hdu 4850 Wow! Such String! 欧拉回路
长度为4的由26个字母组成的字符串一共有$4^{26}$种,从aaaa开始,在加上结尾的aaa那么该字符串长度为$4^{26}+3$。当字符串i的后三个字母和字符串j的前三个字母相同则ij有一条边,遍历所有的边可以构成一个欧拉回路。
首先构造aaaabbbb...zzzz的字符串,然后依次向结尾添加符合条件的字符串,直到遍历完所有的边为止。
代码如下:
#include <cstdio> #include <cstdlib> #include <iostream> #include <cstring> #define MAXN 500001 char s[MAXN]; bool vis[26][26][26][26]; int n; using namespace std; void solve() { memset(vis, 0, sizeof(vis)); n = 0; for( int i = 0 ; i < 26 ; i++ ) { for( int j = 0 ; j < 4 ; j++ ) { s[i*4+j] = i+'a'; n++; } } for( int i = 0 ; i < 25 ; i++ ) { vis[i][i][i][i] = true; vis[i][i][i][i+1] = true; vis[i][i][i+1][i+1] = true; vis[i][i+1][i+1][i+1] = true; } vis[25][25][25][25] = true; while( 1 ) { int i = 25; while(i>=0) { if( vis[s[n-3]-'a'][s[n-2]-'a'][s[n-1]-'a'][i] == false ) { vis[s[n-3]-'a'][s[n-2]-'a'][s[n-1]-'a'][i] = true; s[n++] = i+'a'; break; } i--; } if( i < 0) { break; } } } int main(int argc, char *argv[]) { solve(); int t; while( scanf("%d", &t ) != EOF) { if( t > n ) { printf("Impossible\n"); } else { for( int i = 0 ; i < t ; i++ ) { printf("%c", s[i]); } printf("\n"); } } }
View Code
相关文章推荐
- hdu 4850 Wow! Such String! 构造 欧拉回路
- HDU 4850 Wow! Such String! 欧拉回路
- HDU - 4850 Wow! Such String! 构造(字符串上的欧拉回路)
- hdu 4850 Wow! Such String! 构造 欧拉回路
- hdu 4850 Wow! Such String!(欧拉回路)
- HDU 4850 2014西安邀请赛 D题 Wow! Such String!
- 【HDU】4850 Wow! Such String! 提出猜想题 欧拉道路
- HDU 4850 Wow! Such String! 欧拉路径
- HDU - 4850~Wow! Such String!(dp)
- 【HDU】4850 Wow! Such String! 提出猜想题
- HDU 4850 Wow! Such String!
- hdu 4850 Wow! Such String!(字符串处理,yy)
- 构造字符串 之 hdu 4850 Wow! Such String!
- HDU 4850 2014西安邀请赛 D题 Wow! Such String!
- HDU 4850 Wow! Such String!(构造推理)
- HDU 4850 Wow! Such String!(欧拉道路)
- HDU-4850 Wow! Such String! (构造)
- 构造字符串 之 hdu 4850 Wow! Such String!
- hdu 4850 Wow! Such String! 2014西安全国邀请赛
- hdu 4850 Wow! Such String! 构造 或 欧拉路径并改写成非递归版本