P8248 简单数列 题解
P8248 简单数列 题解
这道题,很多人都觉得
诶,但我就打表过了,而且没有靠程序枚举输出。
题意补充
这个题意即使这么简便,还是有人看不懂。所以我补充一下。
- 数列里面只能有
1,2,3,4 这4 个数。所以1 2 3 4 5 6 7是不允许的。 - 类似
1 2 3 1 2 3,1 2 3 4 1 3 1 2 3 4 1 3,1 1这些情况都不能出现,而1 2 3 4 1 2 3就能出现,即没有任何相邻的的子串相同。
思路
打表。首先构造一组比较可以的数列,至少能拿 5 的话,这个数列要满足没有任何相邻的的子串相同。
接着,自己写SPJ或者直接交上来查看哪里有误,接着进行微调。微调也要有技巧,我调了半个多小时才 AC。
代码
这里提供 C++ 和 Python 代码。
C++:
#include<bits/stdc++.h>
using namespace std;
int s[500]={1,2,3,4,1,3,1,2,3,4,3,1,2,3,1,3,2,3,4,3,1,2,3,4,1,3,1,2,3,4,2,4,1,2,3,4,1,3,1,2,3,4,2,1,2,3,4,1,3,4,2,3,4,1,3,1,2,3,4,2,4,1,2,3,4,1,3,1,2,3,4,2,3,2,1,2,3,4,1,3,1,2,3,4,2,4,1,2,3,4,1,3,1,2,3,4,2,3,1,2,3,4,1,3,1,4,3,4,2,3,4,1,3,1,2,3,4,3,1,2,3,1,4,2,3,4,3,1,2,3,4,1,3,1,2,3,4,2,4,1,2,3,4,1,3,1,2,3,4,2,1,2,3,4,1,3,4,2,3,4,1,3,1,2,3,4,2,4,1,2,3,4,1,3,1,2,3,4,2,3,2,1,2,3,4,1,3,1,2,3,4,2,4,1,2,3,4,1,3,1,2,3,4,2,3,1,2,3,4,1,3,1,4,1,2,3,4,1,3,1,2,3,4,3,1,2,3,1,3,2,3,4,3,1,2,3,4,1,3,1,2,3,4,2,4,1,2,3,4,1,3,1,2,3,4,2,1,2,3,4,1,3,4,2,3,4,1,3,1,2,3,4,2,4,1,2,3,4,1,3,1,2,3,4,2,3,2,1,2,3,4,1,3,1,2,3,4,2,4,1,2,3,4,1,3,1,2,1,4,1,2,3,4,1,3,1,2,3,4,3,1,2,3,1,3,2,3,4,3,1,2,3,4,1,3,1,2,3,4,2,4,1,2,3,4,1,3,1,2,3,4,2,1,2,3,4,1,3,4,2,3,4,1,3,1,2,3,4,2,4,1,2,3,4,1,3,1,2,3,4,2,3,2,1,2,3,4,1,3,1,2,3,4,2,4,1,2,3,4,1,3,1,4,3,4,2,3,4,1,3,1,2,3,4,2,1,2,3,4,1,3,1,2,3,4,3,1,2,3,1,3,2,3,4,3,1,2,3,4,1,3,1,2,3,4,2,4,1,2,3,4,1,3,1,2,3,4,2,1,2,3,4,1,3,4,2,3,4,1,3,1,2,3,4,2,4,1,2,3,4,1,3,1,2,3,4,3,2,1,2,3,4,1,3,1,2,3,4,2,3}//呜呜呜累死了
int main(){
ios::sync_with_stdio(false);
int a;cin>>a;//输入
for(int i=0;i<a;i++){
cout<<s[i]<<" ";//这个数组满足所有的,因为输入500是可以的,所以更小的数字也行
}
return 0;
}
Python:
#这段代码如果自动识别语言会识别成Pascal
a=int(input())
s=[1,2,3,4,1,3,1,2,3,4,3,1,2,3,1,3,2,3,4,3,1,2,3,4,1,3,1,2,3,4,2,4,1,2,3,4,1,3,1,2,3,4,2,1,2,3,4,1,3,4,2,3,4,1,3,1,2,3,4,2,4,1,2,3,4,1,3,1,2,3,4,2,3,2,1,2,3,4,1,3,1,2,3,4,2,4,1,2,3,4,1,3,1,2,3,4,2,3,1,2,3,4,1,3,1,4,3,4,2,3,4,1,3,1,2,3,4,3,1,2,3,1,4,2,3,4,3,1,2,3,4,1,3,1,2,3,4,2,4,1,2,3,4,1,3,1,2,3,4,2,1,2,3,4,1,3,4,2,3,4,1,3,1,2,3,4,2,4,1,2,3,4,1,3,1,2,3,4,2,3,2,1,2,3,4,1,3,1,2,3,4,2,4,1,2,3,4,1,3,1,2,3,4,2,3,1,2,3,4,1,3,1,4,1,2,3,4,1,3,1,2,3,4,3,1,2,3,1,3,2,3,4,3,1,2,3,4,1,3,1,2,3,4,2,4,1,2,3,4,1,3,1,2,3,4,2,1,2,3,4,1,3,4,2,3,4,1,3,1,2,3,4,2,4,1,2,3,4,1,3,1,2,3,4,2,3,2,1,2,3,4,1,3,1,2,3,4,2,4,1,2,3,4,1,3,1,2,1,4,1,2,3,4,1,3,1,2,3,4,3,1,2,3,1,3,2,3,4,3,1,2,3,4,1,3,1,2,3,4,2,4,1,2,3,4,1,3,1,2,3,4,2,1,2,3,4,1,3,4,2,3,4,1,3,1,2,3,4,2,4,1,2,3,4,1,3,1,2,3,4,2,3,2,1,2,3,4,1,3,1,2,3,4,2,4,1,2,3,4,1,3,1,4,3,4,2,3,4,1,3,1,2,3,4,2,1,2,3,4,1,3,1,2,3,4,3,1,2,3,1,3,2,3,4,3,1,2,3,4,1,3,1,2,3,4,2,4,1,2,3,4,1,3,1,2,3,4,2,1,2,3,4,1,3,4,2,3,4,1,3,1,2,3,4,2,4,1,2,3,4,1,3,1,2,3,4,3,2,1,2,3,4,1,3,1,2,3,4,2,3#这里真的很难调
for i in range(a):
print(s[i],end=" ")
求过0ω0