bzoj2388
維護區間加,字首和最大值
如果把下標看做x,字首和看做y,就變成了找凸包上最高點的問題
修改整塊:維護斜率,首項
修改散塊:暴力重構
對最後乙個散塊後面的影響:整體加上乙個數,用標記
code:
#include
#define ill long long
#define inf 1e18
#define db double
using
namespace std;
inline
intgetint()
while
(isdigit
(ch)
)return res*f;
}const
int n=
100005
,sqrr=
350;
int num,n,m,id[n]
,st[sqrr]
,ed[sqrr]
,cnt[sqrr]
;int ans[sqrr]
[sqrr]
,sqr;
ill a[n]
,fir[sqrr]
,d[sqrr]
,add[sqrr]
;int sta[n]
,top;
inline db k
(int x,
int y)
inline
void
build
(int v)
sta[0]
=0;sta[top+1]
=n+1
;cnt[v]
=top;
for(
int i=
0;i<=top+
1;i++
) ans[v]
[i]=sta[i];}
inline
void
pushdown
(int x)
inline ill calc
(int x)
inline ill query
(int x)
}signed
main()
tmp=k*
(y-x+1)
;for
(int i=y+
1;i<=ed[r]
;i++
)a[i]
+=tmp;
build
(r);
for(
int i=r+
1;i<=num;i++
)add[i]
+=tmp;
}else
}return0;
}
洛谷4192 旅行規劃(分塊 凸包)
常數巨大警告qwq。這道題其實題意很簡單,維護乙個序列,支援區間加,區間查詢最大字首和。因為是查詢字首和所以直接維護乙個區間和,區間加就變成了區間加首項為k 公差為k的等差數列。因為乙個等差數列 乙個等差數列還是乙個等差數列,所以這樣做是正確的。所以就有兩個選擇 線段樹和分塊,但考慮到線段樹最後合併...
查稅 斜率優化 單調佇列維護凸包 分塊 )
id3167 有n個辦公室,m個操作,依次讀入 type 如果type為1 接著讀入 t k z s 表示乙個公司於t時刻進駐k辦公室,每天盈利為z,其一開始有s元。若k位置本有別的公司,別的公司會被覆蓋。如果type為2 接著讀入t b 表示於t時刻,你要找出區間 a,b 內,最有錢的公司的錢數。...
nyoj 253 LK的旅行 計算幾何 凸包
時間限制 2000 ms 記憶體限制 65535 kb 難度 5 描述 lk最近要去某幾個地方旅行,她從地圖上計畫了幾個點,並且用筆點了出來,準備在五一假期去這幾個城市旅行。現在希望你找出她點的所有的點中距離最遠的兩個點的距離是多少。各個景點可以認為是在乙個平面上。輸入第一行有乙個整數0輸出 每組資...