3156 防禦準備

2021-08-15 20:35:28 字數 586 閱讀 2226

題目鏈結

題目大意:一條線上n個(檢查)點,編號1~n,乙個點j上可以建乙個守衛塔花費為a[j],也可以選擇放個木偶(為什麼會是木偶= =),花費是這個點右邊建的第乙個守衛塔i到這個點的距離,即i-j。問最小花費

題解:斜率優化,隨便推推式子

我的收穫:233333

#include 

using namespace std;

#define n 1000005

#define ll long long

int n,deq[n];

ll f[n],a[n];

inline ll s

qr(ll x)

inline ll up(ll x,ll y)

inline ll down(ll x,ll y)

inline double k(ll x,ll y)

inline ll calc(ll x,ll y)

void work()

printf("%lld\n",f[n]);

}void init()

int main()

3156 防禦準備

time limit 10 sec memory limit 512 mb submit 2811 solved 1178 submit status discuss 第一行為乙個整數n表示戰線的總長度。第二行n個整數,第i個整數表示在位置i放置守衛塔的花費ai。共乙個整數,表示最小的戰線花費值。1...

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 ...