神奇的項鍊 fett

2021-10-02 23:12:29 字數 1487 閱讀 1309

題目描述

從前有一條神奇的項鍊,為什麼說它神奇呢?因為它有兩個性質:

1. 神奇的項鍊可以拉成一條線,線上依次是n 個珠子,每個珠子有乙個能量值ei;

2. 除了第乙個和最後乙個珠子,其他珠子都滿足ei=(ei-1+ei+1)/2+di。

由於這條項鍊很長,我們只能知道其兩端珠子的能量值。並且我們知道每個珠子的

di是多少。請聰明的你求出這n 個珠子的能量值分別是多少。

輸入

第一行三個整數n、e1、en,表示珠子個數n,第乙個珠子和第n 個珠子的能量值。

第二行n-2 個整數,表示第2 個珠子到第n-1 個珠子的di。

輸出

輸出僅一行,n 個整數,表示1 到n 個這n 個珠子各自的能量值ei。

請放心,資料保證對於任意珠子滿足(ei-1+ei+1)mod 2=0

樣例輸入

sample input 1:

414

00

sample input 2:

10122

12-3

5142

-1

樣例輸出

sample output 1:

123

4

sample output 2:

1

1425

3245

4849

4231

22

資料範圍限制

40%的資料 114,|di|<=104。

這道題其實是一道數學題,我們將題目給出的公式轉變一下,然後再求出第二個值(如果暴力列舉,會超時,所以我們用二分),就直接可以暴力了

e[i]=(e[i-1]+e[i+1])/2+d[i]

同乘2,得:

2e[i]=e[i-1]+e[i+1]+2d[i]

移項,得:

e[i+1]=2e[i]-e[i-1]-2d[i]

所以通項公式為

e[i]=2e[i-1]-e[i-2]-2d[i-1]

#include

#include

using

namespace std;

long

long n,l,r,a,e[

500005

],d[

500005];

intmain()

else

if(e[n]

;else r=e[2]

;}}

神奇的項鍊(數學)

題目描述 笨笨有一條神奇的項鍊,為什麼說它神奇呢?因為它有兩個性質 神奇的項鍊可以拉成一條線,線上依次是n個珠子,每個珠子有乙個能量值ei 除了第乙個和最後乙個珠子,其他珠子都滿足ei ei 1 ei 1 2 di。由於這條項鍊很長,我們只能知道其兩端珠子的能量值。並且我們知道每個珠子的di是多少。...

3790 神奇項鍊

容易發現,處理回文串的時候得到的答案是可以去更新答案的,即 令 f i f i 表示處理前 i i 個最小由幾個回文串構成,那麼,對於第 i role presentation i i個位置,他由 i p i n i p i n 能更新的就是 前 1 i p i 1 1,i p i 1 因為前字尾相...

3790 神奇項鍊

母親節就要到了,小 h 準備送給她乙個特殊的項鍊。這個項鍊可以看作乙個用小寫字 母組成的字串,每個小寫字母表示一種顏色。為了製作這個項鍊,小 h 購買了兩個機器。第乙個機器可以生成所有形式的回文串,第二個機器可以把兩個回文串連線起來,而且第二個機器還有乙個特殊的性質 假如乙個字串的字尾和乙個字串的字...