立志用更少的代码做更高效的表达


Recently, doge starts to get interested in a strange problem: whether there exists a string A following all the rules below:

1.The length of the string A is N .
2.The string A contains only lowercase English alphabet letters.
3.Each substring of A with length equal to or larger than 4 can appear in the string exactly once.

Doge cannot solve the problem, so he turns to his brother Yuege for help. However, Yuege is busy setting problems. Would you please help doge solve this problem?

Input

There are several test cases, please process till EOF.
For each test case, there will be one line containing one integer N (1 ≤ N ≤ 500000).
Sum of all N will not exceed 5000000.

Output

For each case, please output one line consisting a valid string if such a string exists, or “Impossible” (without quotes) otherwise. You can output any string if there are multiple valid ones.

Sample Input

5
3
11
10
6
17
8

Sample Output

pwned
wow
suchproblem
manystring
soeasy
muchlinearalgebra
abcdabch


题意

给你一个整数n,让你输出一个字符串。必须满足以下条件:

1.字符串的长度为n。

2.这个字符串只包含小写字母。

3.字符串中长度大于等于4的子串最多只能出现一次。

如果无解输出Impossible。


解题思路

因为大于等于4的子串只能出现一次,所以不会重复的串最长只会达到4^26+3 = 456979的长度。

因此, 我们可以预先打一个不会重复的字符表出来

若n>456979 ,则输出Impossible。

否则输出表的前n项。

打表的方式用循环即可。


代码解析

#include<iostream>
using namespace std;
int vis[26][26][26][26];
int s[5000005];
int main() {ios::sync_with_stdio;for(int i = 0; i < 26; i++) s[i*4] = s[i*4+1] = s[i*4+2] = s[i*4+3] = i;for(int i = 3; i < 26*4; i++) vis[s[i-3]][s[i-2]][s[i-1]][s[i]]=1;for(int i=26*4; i < 456979; i++)   //xxfor(int j = 25; j >= 0; j--) if(vis[s[i-3]][s[i-2]][s[i-1]][j]==0) {vis[s[i-3]][s[i-2]][s[i-1]][j]=1;s[i] = j;break;}int n; while(cin>>n) {if(n > 456979) { cout << "Impossible" << '\n'; }else {for(int i = 0; i < n; i++) putchar(s[i]+97);putchar('\n');}}return 0;
}

HDU-4850 Wow! Such String!(模拟) ——26行代码AC相关推荐

  1. HDU 4850 Wow! Such String! 【欧拉回路】【一顿乱构造】

    link: http://acm.hdu.edu.cn/showproblem.php?pid=4850 题解: 每个长度为3的字符串当一个节点,每个节点连出26条边,代表给长度为3的字符串吼添加'a ...

  2. 26行代码AC——习题3-2 分子量 (UVa1586,Molar Mass)——解题报告

    大意: 给出分子式,式中只包含以下四种元素.求分子量. C:12.01 H: 1.008 O: 16.00 N: 14.01 Sample Input 4 C C6H5OH NH2CH2COOH C1 ...

  3. Boxers CodeForces - 1203E (贪心解法)——26行代码AC

    立志用更少的代码做更高效的表达 There are n boxers, the weight of the i-th boxer is ai. Each of them can change the ...

  4. 基于VC6.0的控制台作图--一个极坐标曲线图(26行代码)

    文章目录 先看MATLAB如何做 如果不用MATLAB呢? 单纯依靠C函数完成作图 再来几个例子 改画笔画刷(颜色.粗细.透明) 稍作变化 还能有比这更简单的C代码吗? 还可让图形动起来 附录: GD ...

  5. 26行代码实现自动检测苹果手机接入电脑并安装app

    26行代码实现检测到苹果手机接入电脑自动安装app 环境: ubuntu 18.04 需要事先准备的工具: ideviceinstaller ubuntu 18.04安装ideviceinstalle ...

  6. 12行代码AC——L1-058 6翻了(15分)

    立志用更少的代码做更高效的表达 "666"是一种网络用语,大概是表示某人很厉害.我们很佩服的意思.最近又衍生出另一个数字"9",意思是"6翻了&quo ...

  7. (~解题报告~)L1-016 查验身份证 (15分)(29行代码AC!)

    立志用更少的代码做更优化的表达 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下:   首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2 ...

  8. 16行代码AC——例题6-4破损的键盘(Broken Keyboard,UVa 11988)——解题报告

    励志用尽量少的代码做高效的表达. 题目(提交)链接→UVa-11988 题目大意: 输入一个字符串,输出在原本应该是怎么样的? 具体方法是: 若读取到'[', 则执行Home键:将光标移到行首. 若读 ...

  9. 高效万进制——蓝桥杯|HDOJ 1002 大数加法——30行代码AC

    浅谈进制思想: 日常生活中我们习惯用十进制去运算: 为了方便电脑识别开发出了二进制,又因为2^3=8 , 2^4=16,因此应运而生了八进制与16进制. 世上本没有路,走的人多了,也便成了路,那么既然 ...

最新文章

  1. 怎么让BarTender对象等间距分布
  2. HLG 1481 Attack of the Giant n-pus【二分+二分图完全匹配】
  3. 图像凸集投影法_论文分享|数字投影结构光三维测量方法研究
  4. 空洞卷积(Dilated Convolution):有之以为利,无之以为用
  5. c++中调用python脚本提示 error LNK2001: 无法解析的外部符号 __imp_Py_Initialize等错误的解决方法
  6. openresty开发系列20--lua的时间操作
  7. easiest approach for improving writing skills for ielts
  8. pymc3 贝叶斯线性回归_使用PyMC3进行贝叶斯媒体混合建模,带来乐趣和收益
  9. 关于wParam和lParam
  10. 神经网络优化——学习率
  11. 格力宣布11月11日一天让利7亿元 全场空调最高降3900元
  12. ffmpeg解复用FLV文件
  13. PDF打开时显示“正在准备文档以供阅读
  14. C语言快速 入门 一篇就够
  15. 拟一维喷管流动的数值解——亚声速-超声速等熵喷管流动的守恒型CFD解法(MacCormack方法)
  16. 生信软件c语言,科学网—[转载]没有docker我真的不想动这样的生信软件 - 张成岗的博文...
  17. Unity获取Android手机的RAM和剩余RAM和ROM
  18. 不会被和谐的良心云端储存网盘? 试试MEGA吧!
  19. Kotlin学习(7):返回和跳转
  20. python个人所得税怎么写分录_个人所得税的凭证分录怎么写

热门文章

  1. QUIC实战(四) 设置应用开机自启动
  2. 这代码写的跟狗屎一样!怎么优化?
  3. 你真的懂 timeout 吗?
  4. 深度解密Go语言之基于信号的抢占式调度
  5. 区分多种类型的输入输出
  6. 哈希表及哈希冲突解决办法
  7. apr_file_seek 踩坑
  8. 秒懂5G!通俗易懂外行也能看明白
  9. python使用matplotlib绘制k线图
  10. win7 VS2008 编译luabind-0.9.1 动态库 静态库