題目鏈結
題目大意:一條線上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 ...