送你一堆區間

2021-08-14 21:46:20 字數 927 閱讀 8847

按區間貪心做慣了,遇到按區間dp就傻了。

實際上應該按關鍵點dp,這樣計數才更加方便。

至於線段樹優化,直接把dp陣列看做線段樹是不是太。。。。。

accode:

#include#include#include#include#define maxn 500005

#define mod 1000000009

#define lc now<<1

#define rc now<<1|1

#define ll long long

using namespace std;

int n,m;

int l[maxn],r[maxn],c[maxn];

int num[maxn*3],p[maxn];

ll sum[maxn*4],add[maxn*4],mul[maxn*4];

void up(int now)

void dt(int now)

if(mul[now]!=1)

}void add(int now,int l,int r,int pos,ll val)

int m=(l+r)>>1;

add(lc,l,m,pos,val);

add(rc,m+1,r,pos,val);

up(now);

}void double(int now,int l,int r,int ql,int qr)

int m=(l+r)>>1;

double(lc,l,m,ql,qr);

double(rc,m+1,r,ql,qr);

up(now);

}ll query(int now,int l,int r,int ql,int qr)

bool cmp(const int &a,const int &b){

return l[a]

一堆一堆又一堆 合併果子

題目描述 在乙個果園裡,多多已經將所有的果子打了下來,而且按果子的不同種類分成了不同的堆。多多決定把所有的果子合成一堆。每一次合併,多多可以把兩堆果子合併到一起,消耗的體力等於兩堆果子的重量之和。可以看出,所有的果子經過n 1次合併之後,就只剩下一堆了。多多在合併果子時總共消耗的體力等於每次合併所耗...

一堆內建函式

del 當刪除乙個物件時,python直譯器也會預設呼叫乙個方法,這個方法為 del 方法 call 乙個物件加乙個小括號可以執行該類下面的 call 方法 doc 無法被繼承 module 表示當前操作的物件在哪個模組 class 表示當前操作的物件的類是什麼 instance和ssubcclas...

演算法題一堆

演算法題 說明 這些題就不是什麼花樣了,考的是你的基礎知識怎麼樣。再聰明而沒有實學的人都將會被這些題所淘汰。1.鍊錶和陣列的區別在 2.編寫實現鍊錶排序的一種演算法。說明為什麼你會選擇用這樣的方法?3.編寫實現陣列排序的一種演算法。說明為什麼你會選擇用這樣的方法?4.請編寫能直接實現strstr 函...