zoukankan      html  css  js  c++  java
  • CF359B Permutation

    洛咕

    题意:给定整数(n)(k),构造一个长度为(2*n)的排列,满足:(sum_{i=1}^{n}mid{a_{2i}-a_{2i-1}}mid-midsum_{i=1}^{n} a_{2i}-a_{2i-1} mid=2*k)

    分析:一看到排列,就知道是要找性质了.首先不难发现如果排列正好是(1,2,....2*n-1,2*n),那么这个初始排列的贡献是0.

    然后我们考虑交换相邻两项,可以发现式子(sum_{i=1}^{n}mid{a_{2i}-a_{2i-1}}mid)的值没有改变,而式子(mid sum_{i=1}^{n} a_{2i}-a_{2i-1} mid)的值变小了2,所以既然每交换(2*i-1)(2*i)就会产生2的贡献,我们就只要交换k次即可.

    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    #include<cstring>
    #include<cmath>
    #include<queue>
    #include<map>
    #include<set>
    #define ll long long
    using namespace std;
    inline int read(){
        int x=0,o=1;char ch=getchar();
        while(ch!='-'&&(ch<'0'||ch>'9'))ch=getchar();
        if(ch=='-')o=-1,ch=getchar();
        while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar();
        return x*o;
    }
    int main(){
    	int n=read(),k=read();
    	for(int i=1;i<=n;++i){
    		if(k){
    			printf("%d %d ",2*i,2*i-1);
    			--k;
    		}
    		else printf("%d %d ",2*i-1,2*i);
    	}puts("");
        return 0;
    }
    
    
  • 相关阅读:
    Nginx,uWSGI与Django 应用的关系
    闭包学习-Python 篇
    Django学习之REST framework JWT Auth
    Python标准库uuid模块
    Django REST framework学习之JWT失效方式
    Django学习之JWT
    单点登录
    print输出格式总结
    百钱百鸡问题
    流程图符号及其功能
  • 原文地址:https://www.cnblogs.com/PPXppx/p/11533975.html
Copyright © 2011-2022 走看看