B. Find The Array(构造题

B. Find The Array
题意:
给定一个长度为 n n n 的序列 a a a, a i < = 1 0 9 a_i<=10^9 ai​<=109,设和为 S S S
定义一个美丽序列 b b b

  1. 1 < = b i < = 1 0 9 1<=b_i<=10^9 1<=bi​<=109
  2. 对于每一个相邻的 b i , b i + 1 b_i,b_{i+1} bi​,bi+1​ 满足 b i ∣ b i + 1 b_i|b_{i+1} bi​∣bi+1​ 或者 b i + 1 ∣ b i b_{i+1}|b_i bi+1​∣bi​
  3. 2 ∗ ∑ i = 1 n ∣ a i − b i ∣ < = S 2*\sum_{i=1}^n|a_i-b_i|<=S 2∗∑i=1n​∣ai​−bi​∣<=S

输出任意一个美丽序列 b b b
思路:
大佬的奇妙题解
构造一个 2 2 2 的幂的序列 b b b 即可满足条件 2 2 2
第三个性质可以转化为这样一个充分条件 ∣ a i − 2 k ∣ < = a i 2   ( 1 < = i < = n ) |a_i-2^k|<=\frac{a_i}{2} \ (1<=i<=n) ∣ai​−2k∣<=2ai​​ (1<=i<=n),
那么如果 ∣ x − 2 k ∣ < = x 2 |x-2^k|<=\frac{x}{2} ∣x−2k∣<=2x​ 对于所有的 x x x 都能找到对应的 k k k 满足不等式即可构造
证明不会
std:
把序列 n n n 按照奇偶性分成两堆,然后缺少的位置放 1 1 1
1 , a 2 , 1 , a 4 . . . 1,a_2,1,a_4... 1,a2​,1,a4​...
a 1 , 1 , a 3 , 1... a_1,1,a_3,1... a1​,1,a3​,1...
这样构造的两个奇偶相间的序列必然有一个满足限制

上一篇:Codeforces 1548E Gregor and the Two Painters


下一篇:Java递归基础案例-字符串全排列-三星提示(背下公式)