给
定
序
列
长
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次......