1. 程式人生 > 其它 >【CF 359B】Permutation

【CF 359B】Permutation

題目大意

構造序列使 \(\sum_1^n|a_{2i}-a_{2i-1}|-|\sum_1^na_{2i}-a_{2i-1}|=2k\)

分析

  • \(k=0\) 時,很顯然是直接輸出 \(1\sim2n\) 的所有整數;
  • \(k\not=0\) 時,可以讓兩個數更換位置來讓原式等於 \(2k\),而剩下的依舊按照 \(1\sim2n\) 的順序來保持 \(k\) 的值不變。

注意到當 \(a_{2i}<a_{2i-1}\) 時,將絕對值去掉變負數可得此時的值為 \(2\times(a_{2i}-a_{2i-1})\),於是就將第一個數變為 \(k+1\),其餘的照常輸出就好。

程式碼

#include<cstdio>
using namespace std;
int n,m;
int main() {
    scanf("%d%d",&n,&m),n<<=1,printf("%d ",m+1);
    for(int i=1; i<=n; i++) {
        if(i^(m+1)) {
            printf("%d ",i);
        }
    }
    return 0;
}

本文作者:AFewMoon,文章地址:https://www.cnblogs.com/AFewMoon/p/15490780.html

本作品採用 知識共享署名-非商業性使用-相同方式共享 4.0 國際許可協議 進行許可。

限於本人水平,如果文章有表述不當之處,還請不吝賜教。