bzoj 3132 上帝造題七分鐘

2022-06-01 09:39:11 字數 846 閱讀 5829

bit區間增加區間求和,只不過是二維的......比一維麻煩多了。

這種題還是得自己推啊,強記果斷會暈掉。

公式大概是σσdij*(x-i+1)*(y-j+1),其中dij表示在(i,j)點上累計的增量,展開後得到σσdij*(x+1)*(y+1)-dij*i*(y+1)-dij*j*(x+1)+dij*i*j 然後x+1和y+1是在具體詢問中才知道的,所以我們維護4個bit:dij , dij*i , dij*j , dij*i*j 。

詢問的時候注意上面乘i的下面要乘x+1,上面乘j的下面要乘y+1。

view code

1 #include2 #include3 #include4 #include5 #include6

#define maxn 2048

7using

namespace

std;

8int

n,m;

9struct

bit10

18int ask(int x,int

y)19

26}s,t,l,r;

2728

void ins(int x1,int y1,int x2,int y2,int

z)29

3536

int query(int x1,int y1,int x2,int

y2)37

4445

intmain()

4659

else

6065}66

return0;

67 }

我實在想噴這個題的資料範圍,實在太卡了,就是開小了re,開大了mle的節奏,建議大家開2050左右的int。

BZOJ3132 上帝造題的七分鐘

description 第一分鐘,x說,要有矩陣,於是便有了乙個裡面寫滿了0的n m矩陣。第二分鐘,l說,要能修改,於是便有了將左上角為 a,b 右下角為 c,d 的乙個矩形區域內的全部數字加上乙個值的操作。第三分鐘,k說,要能查詢,於是便有了求給定矩形區域內的全部數字和的操作。第四分鐘,彩虹喵說,...

BZOJ 3132 上帝造題的七分鐘

bzoj 3132 上帝造題的七分鐘 樹狀陣列 第一分鐘,x說,要有矩陣,於是便有了乙個裡面寫滿了0的n m矩陣。第二分鐘,l說,要能修改,於是便有了將左上角為 a,b 右下角為 c,d 的乙個矩形區域內的全部數字加上乙個值的操作。第三分鐘,k說,要能查詢,於是便有了求給定矩形區域內的全部數字和的操...

BZOJ 3132 上帝造題的七分鐘 (樹狀陣列)

description 第一分鐘,x說,要有矩陣,於是便有了乙個裡面寫滿了 0 0 的n m role presentation n m n m矩陣。第二分鐘,l說,要能修改,於是便有了將左上角為 a b a,b 右下角為 c d c,d 的乙個矩形區域內的全部數字加上乙個值的操作。第三分鐘,k說,...