1 条题解

  • 0
    @ 2025-8-24 22:37:17

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar cff_0102
    & aqua_qaq | 团子群 185800038 | 如果我死了说明我 AFO 了

    搬运于2025-08-24 22:37:17,当前版本为作者最后更新于2022-03-25 16:47:48,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    P8248 简单数列 题解

    这道题,很多人都觉得 500500 个数,这得试到猴年马月才能过啊,还是直接枚举/搜索吧。

    诶,但我就打表过了,而且没有靠程序枚举输出。

    题意补充

    这个题意即使这么简便,还是有人看不懂。所以我补充一下。

    • 数列里面只能有 1,2,3,41,2,3,444 个数。所以 1 2 3 4 5 6 7 是不允许的。
    • 类似 1 2 3 1 2 31 2 3 4 1 3 1 2 3 4 1 31 1 这些情况都不能出现,而 1 2 3 4 1 2 3 就能出现,即没有任何相邻的的子串相同。

    思路

    打表。首先构造一组比较可以的数列,至少能拿 2020 分。这个时候把整个数列复制几遍,先把这个初始的数列称为一段。每段之间加上几个数字,使得数字总数超过 500500,并且如果把一段看做 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

    • 1

    信息

    ID
    6031
    时间
    1000ms
    内存
    128MiB
    难度
    3
    标签
    递交数
    0
    已通过
    0
    上传者