bzoj 2131 免費的餡餅

2022-05-08 03:03:12 字數 694 閱讀 6089

易得方程 $f[i]=max(f[j])+v[i]$,條件是 $t[i]一共有 3 個條件,但是你發現如果滿足後面兩個條件,自然滿足第乙個條件. 

所以可以將問題轉化為乙個二位偏序問題,離線+樹狀陣列處理一下即可. 

code: 

#include #define n 100007 

#define ll long long

using namespace std;

void setio(string s)

struct data

a[n];

bool cmp(data a,data b)

int c[n],a[n],f[n];

int lowbit(int t)

void update(int x,int v)

int query(int x)

int main()

sort(a+1,a+1+n);

for(i=1;i<=n;++i) a[i].key2=lower_bound(a+1,a+1+n,a[i].key2)-a;

sort(a+1,a+1+n,cmp);

for(i=1;i<=n;++i)

printf("%d\n",ans);

return 0;

}

bzoj2131 免費的餡餅

智障一般的操作,拆絕對值都忘了。數學沒救了。最後貌似是用的幾何意義推出來的。轉移的條件是 t i t j 並且abs p i p j 2 t i t j 顯然前面那個可以不考慮。然後你把每個狀態看作乙個二維平面上的點nd i 2 t i p i 移向不難發現 nd i 能夠轉移的點就是y x,y x...

bzoj 2131 免費的餡餅

易得方程 f i max f j v i 條件是 t i 一共有 3 個條件,但是你發現如果滿足後面兩個條件,自然滿足第乙個條件.所以可以將問題轉化為乙個二位偏序問題,離線 樹狀陣列處理一下即可.code include define n 100007 define ll long long usi...

bzoj2131 免費的餡餅

首先我們很容易看出是乙個dp 然後容易看出是資料結構優化dp 但是這個限制條件有點鬼畜 abs p i p j 2 t i t j p i p j t i 2 p i t j 2 p j p i t i 2 p i t j 2 p j 這樣的話我只會樹套樹 後來想想帶修主席樹應該也行?信仰不夠去 題...