P6340 [COCI 2007/2008 #2] KEMIJA

题目描述

请你构造一个由 n 个数字围成的环,使得环中的所有数都加上其相邻两个数之后的结果等于给定的目标环。

输入格式

输入第一行为一个整数 n。

接下来的 n 行,每行一个整数,表示给定的目标环。

输出格式

输出共 n 行,每行一个整数。描述你构造的环。

可能存在多种构造方法,本题使用SPJ。

题解

构造一个序列 a 使得(bi​表示目标环):

{an+a1+a2=b1a1+a2+a3=b2a2+a3+a4=b3...an−1+an+a1=bn⎩⎨⎧​an​+a1​+a2​=b1​a1​+a2​+a3​=b2​a2​+a3​+a4​=b3​...an−1​+an​+a1​=bn​​

做差可得:

{an−a3=b1−b2a1−a4=b2−b3a2−a5=b3−b4an−1−a2=bn−1−bn⎩⎨⎧​an​−a3​=b1​−b2​a1​−a4​=b2​−b3​a2​−a5​=b3​−b4​an−1​−a2​=bn−1​−bn​​

移项

你可能感兴趣的:(c++算法笔记,算法,数据结构,c++,洛谷)