天天看點

B. Phoenix and Beauty(貪心構造)

n

k

給定序列長n的數組和k。完美數組的定義是數組中每一個連續k項的子段和為定值

使

滿

.

現在要求插入一些數使得數組滿足條件,輸出你構造的新數列.

!

h

e

\color{Red}{---------------------分割線!!hehehe----------------------}

−−−−−−−−−−−−−−−−−−−−−分割線!!hehehe−−−−−−−−−−−−−−−−−−−−−−

這題其實很友好了,在原題中一直提醒你不必構造最短的數列!!!這意味着有方法可以很簡單的構造出來。

a

當數組中數的種類大于k是一定不能構造的,那我們現在考慮小于k的情況。(下面的數組a是假定構造完的數列)

[

1

]

2

+

=

定值為a[1]到a[k]的子段和,說明a[2]到a[k+1]也等于這個定值,是以a[k+1]==a[1]

(

)

那麼現在很簡單,我們隻需要a[1]到a[k]就可以一直往後構造(一個循環節)

,

便

a[1]到a[k]用原數組中互不相同的數字填充,不夠的話你随便添加什麼都可以啦~然後就一直構造n次......

a[1]到a[k]用原數組中互不相同的數字填充,不夠的話你随便添加什麼都可以啦 然後就一直構造n次......