Codeforces 1343B - Balanced Arra

2020-05-01  本文已影响0人  费城的二鹏

这些单薄的树,就长在高速路两边,另一边就是田地,它们就在人类活动痕迹的夹缝中生存。如果挡了路会被伐,挡了光也会被伐,所以他们只能单薄,还得生对地方。

题目: Codeforces 1343B - Balanced Array
https://codeforces.com/problemset/problem/1343/B

翻译

给一个数字 n,保证数字 n 是偶数。

需要构造一个长度为 n 的数列 a,并有如下要求:

如果有很多答案,可以随便输出任意答案,不保证可以构建出答案。

输出格式

分析

因为元素都是奇数或者偶数,所以只能是整数,此时需要分成两种情况讨论。

可以看到构建的最后一个数字与其它不一样,因为后半部分会比前半部分每个数字少1,一共少 n / 2,所以最后一个数字要在基础上加 n/2,并且 n/2 是偶数所以加上之后依旧是奇数,构造的数列符合所有要求。

总结来说,这是道很简单的题目,大概就是找规律吧,当初ACM称作水题。

代码(Python3)

# https://codeforces.com/problemset/problem/1343/B

import sys

# sys.stdin = open(r"./file/input.txt", 'r')
# sys.stdout = open(r"./file/output.txt", 'w')

t = int(input())

for i in range(t):
    n = int(input())
    count = int(n / 2)
    if count % 2 == 1:
        print("NO")
    else:
        print("YES")
        for j in range(1, count + 1):
            if j != 1:
                print(" ", end="")
            print(j * 2, end="")

        for j in range(1, count + 1):
            print(" ", end="")
            if j == count:
                print(j * 2 + count - 1)
            else:
                print(j * 2 - 1, end="")

by 费城的二鹏 2020.05.01

上一篇下一篇

猜你喜欢

热点阅读