按區間貪心做慣了,遇到按區間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 函...