POJ 3170 線段樹優化DP

2021-07-24 04:55:33 字數 1126 閱讀 5525

題意:

思路:

先搞乙個vector 存以t2結尾的結構體 (結構體裡面有開始工作的時間和花費)

f[i]表示取區間[m,i)的代價

易得f[i]=min(f[k]+w,f[i]);t1<=k

//by siriusren

#include

#include

#include

#include

using

namespace

std;

#define int long long

int n,s,e,f[88888],tree[666666];

struct nodejy;

vector

v[88888];

void insert(int l,int r,int pos,int xx)

int mid=(l+r)>>1,lson=pos<<1,rson=pos<<1|1;

if(xx<=mid)insert(l,mid,lson,xx);

else insert(mid+1,r,rson,xx);

tree[pos]=min(tree[lson],tree[rson]);

}int query(int l,int r,int pos,int l,int r)

signed main()

memset(tree,0x3f,sizeof(tree)),memset(f,0x3f,sizeof(f));

f[s]=0,insert(0,e,1,s);

for(int i=1;i<=e;i++)

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

else

puts("-1");

}

線段樹優化dp

等離子炮有n個操作訊號,第i個操作訊號的強度為b i 總體強度為各操作訊號的強度之和。由於有些訊號太弱了了 強度 0 水寶寶想把它們刪除。但是水寶寶自己不會刪除訊號,所以他找來了同船的隊友幫忙。有 m位隊友,第ii 位隊友只會刪除編號在 l i 和 r i 之間的訊號,且每刪除乙個訊號,花費 c i...

降臨(線段樹優化dp)

選定點i會有代價 c i 如果乙個區間j內的點全被選擇,就可以獲得回報 p j 點數和區間個數 1e5 還以為是線段樹優化網路流 50萬個點200萬條邊看上去很可做的樣子畢竟lbn說過網路流20萬萬條邊完全沒問題 沒想到是個線段樹dp。雖然這兩個線段樹完全扯不上關係 用 f i j 表示考慮到第i個...

線段樹優化DP之Monotonicity

定義f i 為處理到第i位,所得匹配的最長長度,根據f i 我們可以求出它後面要跟的符號 可以用符號填滿,避免一些取模運算 對於i,我們列舉每乙個i前面的j,判斷是否合法,那麼 n 2 的做法就可以寫出來了 includeusing namespace std const int maxn 2000...