1 条题解

  • 0
    @ 2025-8-24 22:49:02

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar lemon_qwq
    **

    搬运于2025-08-24 22:49:02,当前版本为作者最后更新于2023-08-09 20:35:35,作者可能在搬运后再次修改,您可在原文处查看最新版

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

    以下是正文


    看到题面很容易想到形如 1,2,1,3,1,4,1,5,1,61,2,1,3,1,4,1,5,1,6\cdots 的序列。

    很明显这个序列是不对的,因为如果选中类似 2,1,32,1,3 的子区间会发现不满足条件。

    根据条件进行修改即可。

    序列变为 1,2,1,1,3,1,1,4,1,11,2,1,1,3,1,1,4,1,1\cdots

    提交会发现有一个点不正确,因为这个方法不是最优的。

    继续修改,把整个序列整体向前移一位。

    序列变为 2,1,1,3,1,1,4,1,1,52,1,1,3,1,1,4,1,1,5\cdots

    这样便是最优的,因为省掉了开头不需要的 11,节省下来了一个位置。

    代码:

    #include<bits/stdc++.h>
    using namespace std;
    int n,a=2,b=0;
    int main(){
    	cin>>n;
    	for(int i=1;i<=n;i++){
    		if(b==0){
    			cout<<a<<" ";
    			a++;
    			b=2;
    		}
    		else{
    			b--;
    			cout<<1<<" ";
    		}
    	}
    	return 0;
    }
    

    完结撒花。

    • 1

    信息

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