文章图片
题目
题意: 给你一个 n , k n,k n,k和一个 a a a序列,你可以进行操作,计算出 a a a中的最大值 d d d,然后 a i = d ? a i a_i=d-a_i ai?=d?ai?,进行 k k k次这样的操作,求出最后的 a a a序列。
思路: 我们列出操作后的序列:
- 第一次: b 1 , b 2 , b 3 , . . . . b n ( m a x = d ) b_1,b_2,b_3,....b_n(max = d) b1?,b2?,b3?,....bn?(max=d)
- 第二次: d ? b 1 , d ? b 2 , d ? b 3 , . . . . , d ? b n ( m a x = d ) d-b_1,d-b_2,d-b_3,....,d-b_n(max=d) d?b1?,d?b2?,d?b3?,....,d?bn?(max=d)
- 第三次: d ? ( d ? b 1 ) = b 1 , d ? ( d ? b 2 ) = b 2 , . . . . . , b n ( m a x = d ) d-(d-b_1)=b_1,d-(d-b_2)=b2,.....,b_n(max=d) d?(d?b1?)=b1?,d?(d?b2?)=b2,.....,bn?(max=d)
【codeforces B. Omkar and Infinity Clock】我们可以发现这个序列是交替的,每一次的最大值都是 d d d,第一次操作后肯定有肯定存在一个 b i = 0 b_i=0 bi?=0,这里的 d d d指的是 b b b序列中的最大值,不是 a a a序列中的,然后每一次的最大值都是 d ? ( b i = 0 ) = d d-(b_i=0)=d d?(bi?=0)=d,我们计算出这两个序列,然后判断 k k k的奇偶性就可以得出最终的序列了。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include