3156 防禦準備

2022-05-16 05:40:54 字數 832 閱讀 6777

time limit: 10 sec  memory limit: 512 mb

submit: 2811  solved: 1178

[submit][status][discuss]

第一行為乙個整數n表示戰線的總長度。

第二行n個整數,第i個整數表示在位置i放置守衛塔的花費ai。

共乙個整數,表示最小的戰線花費值。

102 3 1 5 4 5 6 3 1 2

181<=n<=10^6,1<=ai<=10^9

katharon+#1

將a[i]反過來,因為最後乙個檢查點一定要放置守衛塔,反過來就變成第乙個放置守衛塔

斜率優化,少寫個ll wa了半天

f[i]=min

\[\frac-k^+j-k}

1 #include2 #include3

using

namespace

std;45

#define ll long long

6const

int maxn=1000005;7

8int

n,l,r;

9int

a[maxn],q[maxn];

10 ll ans=(1ll<<60

),f[maxn],s[maxn];

1112

double

slope(ll k,ll j)

1316

17int

main()

1835 printf("

%lld

",ans);

36return0;

37 }

3156 防禦準備

題目鏈結 題目大意 一條線上n個 檢查 點,編號1 n,乙個點j上可以建乙個守衛塔花費為a j 也可以選擇放個木偶 為什麼會是木偶 花費是這個點右邊建的第乙個守衛塔i到這個點的距離,即i j。問最小花費 題解 斜率優化,隨便推推式子 我的收穫 233333 include using namespa...

bzoj 3156 防禦準備

第一行為乙個整數n表示戰線的總長度。第二行n個整數,第i個整數表示在位置i放置守衛塔的花費ai。共乙個整數,表示最小的戰線花費值。10 2 3 1 5 4 5 6 3 1 2 181 n 10 6,1 ai 10 9 暴力就不多說了 include include include include i...

BZOJ 3156 防禦準備

1 n放城堡 木偶,在第i位放城堡的 cost i 給出,放木偶的 cost i j i j為i右邊第乙個城堡 問最小花費普通 theta dp會掛 n leq 100000 需要斜率優化,為了方便,我們從左往右dp f i 為在這個點放城堡的最小花費 因為第n個必須放城堡 f i min j i ...