題目鏈結
牛妹為了打比賽經常不吃飯,但是牛妹非常喜歡吃豆子,她經常會吃很多很多的豆子,所以牛妹不會感覺到餓, 自然就不想吃飯了。
現在牛妹有乙個 n∗m 個格仔的棋盤.左下角的格仔座標為 (1, 1), 右上角的格仔座標為 (n,m).棋盤的每個格仔都能放任意個豆子.
這時牛可樂帶著一袋豆子走了過來, 打算跟牛妹分享這些豆子, 但是牛可樂並不想就這麼簡單的讓牛妹吃到豆子, 所以牛可樂給牛妹出了乙個難題.
現在牛可樂有 k 次操作,每次操作給出四個數字 x1,
y1,x
2,y2
x_1,y_1,x_2,y_2
x1,y1
,x2
,y2
: 表示牛可樂會將所有滿足 x1≤
x≤x2
,y1≤
y≤y2
x_1\leq x\leq x_2,y_1\leq y \leq y_2
x1≤x≤
x2,
y1≤
y≤y2
這兩個條件的位置上放乙個豆子。
牛可樂放完豆子後給出了 q 次詢問, 每次詢問給出四個數字 x1,
y1,x
2,y2
x_1,y_1,x_2,y_2
x1,y1
,x2
,y2
: 表示詢問所有滿足 x1≤
x≤x2
,y1≤
y≤y2
x_1\leq x\leq x_2,y_1\leq y \leq y_2
x1≤x≤
x2,
y1≤
y≤y2
這兩個條件的位置上中總共有多少個豆子.
這個問題可難住牛妹了, 牛妹想要吃到豆子就必須答對牛可樂的所有詢問。
輸入一行四個數字 n,m,k,q
n,m 表示棋盤的大小.有 k 次操作和 q 次詢問
下面 k 行,每行四個數字 x1,
y1,x
2,y2
x_1,y_1,x_2,y_2
x1,y1
,x2
,y2
表示牛可樂會將所有滿足 x1≤
x≤x2
,y1≤
y≤y2
x_1\leq x\leq x_2,y_1\leq y\leq y_2
x1≤x≤
x2,
y1≤
y≤y2
這兩個條件的位置上放乙個豆子。
下面 q 行,每行四個數字 x1,
y1,x
2,y2
x_1,y_1,x_2,y_2
x1,y1
,x2
,y2
表示詢問所有滿足 x1≤
x≤x2
,y1≤
y≤y2
x_1\leq x\leq x_2,y_1\leq y\leq y_2
x1≤x≤
x2,
y1≤
y≤y2
這兩個條件的位置上中總共有多少個豆子。
每次詢問,輸出一行乙個數字表示答案。
2 2 1 1
1 1 2 2
1 1 2 1
2
典型的二維字首和問題,對修改操作,我們可以記錄四個點的值來維護一塊子陣,然後求一次二維字首和得到矩陣,再求一次二維字首和得到子陣和即可,ac**如下,做這道題還發現了乙個有趣的點,如果各位定義了 y
1y_1
y1 這個全域性變數評測機是會報錯的,因為 mat
h.
hmath.h
math.h
庫裡面有 y
1y_1
y1 這個函式,相當於你重定義了,所以會 ce,解決辦法就改乙個變數名或者放在 mai
nmain
main
函式裡就好了:
#include
using
namespace std;
typedef
long
long ll;
const
int n=
2e3+5;
ll f[n]
[n]=
;int
main()
for(
int i=
1;i<=n;i++
)for
(int i=
1;i<=n;i++
)while
(q--
)return0;
}
牛客練習賽24 D
名字挺有意思的,排插樹,雖然這是個圖。算dijkstra的模版題,求最短路裡面最長的那條,因為到講台的距離總是取決於最短的那條路,但是又要求離講台最遠,那麼我們通過dijkstra計算出起始點到所有點的最短路然後遍歷找最大值就好。如下 include using namespace std type...
牛客小白月賽24 題解
牛客小白月賽24 題解 最後還剩一道計算幾何,其實可以ak,但沒必要 b 簽到 include using namespace std const int n 2e5 10 int a n int main printf d n ans return 0 c 還行 includeusing name...
牛客網小白月賽D
題目 水果店裡有 n個水果排成一列。店長要求顧客只能買一段連續的水果。小陽對每個水果都有乙個喜愛程度 ai,最終的滿意度為他買到的水果的喜歡程度之和。如果和為正 不管是正多少只要大於 0 即可 他就滿意了。小陽想知道在他滿意的條件下最多能買多少個水果。你能幫幫他嗎?輸入描述 第一行輸入乙個正整數 n...