bzoj5039 Jsoi2014 序列維護

2022-04-29 21:51:15 字數 1065 閱讀 7312

做做bzoj上的新題(不存在的)

同bzoj1798: [ahoi2009]維護序列,樣例都一樣的...我能想象到的唯一的新的考察意義就是模數是2e9不是1e9,於是加法的時候需要轉long long

就是給出一段序列,zici區間加乙個數,區間乘乙個數,區間求和...線段樹開兩個標記a,b表示乘上a再加b,nlogn完事.

#includeconst int maxn=100005;

int n,mod;

int seg[maxn<<2][3];//0:sum 1:multiply 2:plus

void build(int rt,int l,int r)else

}void mult(int rt,int x)

void plus(int rt,int l,int r,int x)

void pushdown(int rt,int l,int r)

if(seg[rt][2]!=0)

}void pushup(int rt)

int qsum(int rt,int l,int r,int ql,int qr)

void mult(int rt,int l,int r,int ql,int qr,int x)

pushdown(rt,l,r);

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

if(ql<=mid)mult(rt<<1,l,mid,ql,qr,x);

if(qr>mid)mult(rt<<1|1,mid+1,r,ql,qr,x);

pushup(rt);

}void plus(int rt,int l,int r,int ql,int qr,int x)

pushdown(rt,l,r);

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

if(ql<=mid)plus(rt<<1,l,mid,ql,qr,x);

if(qr>mid)plus(rt<<1|1,mid+1,r,ql,qr,x);

pushup(rt);

}int main()

} return 0;

}

小店購物 JSOI2008 BZOJ 2260

grant是乙個個體戶老闆,他經營的小店因為其豐富的優惠方案深受附近居民的青睞,生意紅火。小店的優惠方案十分簡單有趣。grant規定 在一次消費過程中,如果您在本店購買了精製油的話,您購買香皂時就可以享受2.00元 塊的 如果您在本店購買了香皂的話,您購買可樂時就可以享受1.50元 聽的 諸如此類的...

BZOJ 4327 JSOI2012 玄武密碼

字尾自動機裸題。藉著這道裸題總結一下字尾自動機的查詢問題。1.查字首 查詢時不跳parent,遇到空節點就跳出。2.查子串 查詢時跳parent,記錄最大ans.3.查次數 lct維護right陣列 4.查不同的串的數目 在建樹時維護,乙個點對答案的貢獻為this max len this pare...

JSOI2009 bzoj1449 球隊收益

description input output 乙個整數表示聯盟裡所有球隊收益之和的最小值。首先假設全輸,然後給每場比賽分配乙個贏家,每個隊伍每多贏一場多獲得的收益作為費用。但是有乙個問題,如何保證每次走的是對應的邊?也就是,如何保證贏第一場的時候增加的收益是贏一場減贏零場,而不是贏兩場減贏一場?...