洛谷 11 月月賽 I Div.2 A [Kubic] Addition 題解
阿新 • • 發佈:2021-12-15
洛谷 11 月月賽 I Div.2 A [Kubic] Addition 題解
這些數全部往 \(a_1\) 裡面累積進去,具體地,如果 \(a_i(i\geqslant 2)\) 是負數,就往 \(a_1\) 加進去其相反數,否則就直接加進 \(a_1\)。
Content
你有一個長度為 \(n\) 的序列 \(a\)。你可以執行 \(n-1\) 次操作,每次操作中你可以選擇一個位置 \(i\),並刪除 \(a_i\) 和 \(a_{i+1}\),再在原位置上面插入 \(a_i+a_{i+1}\) 或者 \(a_i-a_{i+1}\)。求出恰好剩下的一個數的最大值。
資料範圍:\(1\leqslant n\leqslant 10^5\),\(|a_i|\leqslant 10^9\)。
Solution
很標準的一道良心送分 A 題。
不難想到,由於要插入的值是左邊的那個數的值加上或減去右邊那個數的值,所以,我們將 \(a_2,\dots,a_n\)
上面這句話歸結成一個式子就是 \(a_1+\sum\limits_{i=2}^n |a_i|\)。
Code
namespace Solution { int n, x; ll ans; iv Main() { read(n); F(int, i, 1, n) read(x), ans += (i == 1 ? x : abs(x)); write(ans); return; } }