zoukankan      html  css  js  c++  java
  • 【NOIP2017提高A组模拟9.12】Arrays and Palindrome

    【NOIP2017提高A组模拟9.12】Arrays and Palindrome[SPJ]

    题目

    Description

    在这里插入图片描述

    Input

    在这里插入图片描述

    Output

    在这里插入图片描述

    Sample Input

    1
    6

    Sample Output

    6
    2
    1 5

    Data Constraint

    在这里插入图片描述

    题解

    题意

    em……语言组织能力不行,看题吧

    题解

    结论题
    可以证得(A)里最多只有2个奇数,否则无解
    分情况讨论
    0个奇数:(a)就是(A)(b)(A_1+1,A_2...A_{n-1},A_n-1)
    1个奇数:
    (a):奇数放后面,其余不变
    (b): 同上,第一个+1,最后一个-1
    2个奇数:
    (a):一个奇数放前面,一个放后面,其余不变
    (b):同上,第一个+1,最后一个-1,如果最后一个是1的话就不输出
    特判(n=1)

    Code

    #include<cstdio>
    using namespace std;
    int n,t,a[100001],c[100001];
    int main()
    {
    	freopen("b.in","r",stdin);
    	freopen("b.out","w",stdout);
    	scanf("%d",&n);
    	for (int i=1;i<=n;++i)
    		scanf("%d",&a[i]);
    	if (n==1) printf("%d
    ",a[1]),printf("2
    "),printf("%d %d
    ",1,a[1]-1);
    	else
    	{
    		for (int i=1;i<=n;++i)
    			if (a[i]&1) 
    				c[++t]=a[i];
    		for (int i=1;i<=n;++i)
    			if  (!(a[i]&1))
    				c[++t]=a[i];
    		for (int i=2;i<=n;++i)
    			printf("%d ",c[i]);
    		printf("%d
    ",c[1]);
    		if (c[1]==1) printf("%d
    ",n-1);
    		else printf("%d
    ",n);
    		printf("%d ",c[2]+1);
    		for (int i=3;i<n;++i)
    			printf("%d ",c[i]);
    		if (c[1]==1) printf("%d
    ",c[n]-1);
    		else printf("%d %d
    ",c[n],c[1]-1);
    	}
    	fclose(stdin);
    	fclose(stdout);
    	return 0;	
    } 
    
  • 相关阅读:
    一、逻辑架构与存储引擎
    三、动态SQL
    九、装饰者模式
    二、Mapper映射文件
    八、适配器模式
    测试开发系列之Python开发mock接口(二)
    测试开发系列之Python开发mock接口(三)
    html基础
    seleniumWebdriver浏览器驱动信息汇总
    用30行代码开发一个上传、下载文件的接口
  • 原文地址:https://www.cnblogs.com/Livingston/p/13973887.html
Copyright © 2011-2022 走看看