2 条题解

  • 1
    @ 2021-05-06 12:26:35

    C Almost Unnatural Permutation
    这题是CF上一题改编的,原题是没有字典序的说法的,但是众所周知vijos不支持Special Judge,所以需要让答案唯一。(原题的解法: (2,3,4,...,n,1)是一种可行的方法)
    关于本题,我们举几个例子即可。
    若n=6,第一位不能取1,所以取2使得字典序最小。第二位取1。第三位取4,以此类推。答案是(2,1,4,3,6,5)
    奇数时策略稍有变化,如果仍采用以上策略,n=5:(2,1,4,3,5)导致最后一位不满足题意,这时我们交换最后两个数字即可。
    Code:

    #include<bits/stdc++.h>
    using namespace std;
    int a[1000005];
    int main()
    {
        int n;cin>>n;
        for(int i=1;i<=n;i+=2)a[i]=i+1,a[i+1]=i;
        if(n%2){a[n]=n-2;a[n-1]=n;}
        for(int i=1;i<=n;i++)cout<<a[i]<<" ";
        return 0;
    }
    
    
  • 0
    @ 2022-07-29 15:20:15

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

  • 1

信息

ID
1247
难度
9
分类
(无)
标签
(无)
递交数
8
已通过
5
通过率
62%
被复制
3
上传者