求一个长度为2n的序列,满足Σ|a2i−a2i−1|−|Σa2i−a2i−1|=2k
这种带绝对值的题目套路就是把绝对值拆开。看看n=2时候的情况
[1,2,3,4]
|2−1|+|4−3|−|2−1+4−3|=0
swap(1,2)=>
|1−2|+|4−3|−|1−2+4−3|=2
也就是交换一组产生2的贡献,直接交换k组就好了。
#include<iostream> using namespace std; /* */ int main(){ int n,k; cin>>n>>k; for(int i=1;i<=n;++i){ if(k>0) cout<<i*2<<" "<<i*2-1<<" "; else cout<<i*2-1<<" "<<i*2<<" "; k--; }return 0; }