NOIP模擬題 柵欄

2022-05-03 18:21:09 字數 885 閱讀 2116

題目大意

給定乙個$n\times m$的網格圖,每次會選擇一塊矩形沿著網格線鋪上柵欄,或者拆除之前鋪的柵欄,或者詢問兩個格仔能否不經過柵欄直接到達。

保證柵欄沒有重疊或交叉,刪去的柵欄刪除前一定存在。

題解考慮兩個格仔能互相到達,當且僅當包含它們的柵欄完全相同。考慮對每乙個柵欄隨機乙個權值,維護覆蓋每個點的所有柵欄的異或和。

詢問兩個點時,若兩個點權值不相同,那麼一定不在。否則,可以直接認為覆蓋它們的柵欄集合完全相同。

由於在$maxint$範圍內隨機權值,那麼一共會出現$2^30$種權值異或和,幾乎已經不可能出現重合。也可以用多次隨機和擴大權值範圍來增大正確率。

至於矩形異或,維護乙個點的權值,可以直接使用差分$+$二維樹狀陣列。

複雜度$o(q\log n\log m)$。

#include#define debug(x) cerr<

using namespace std;

int read()

int n,m,nt[m],bf[m],tot,c[n][n],p[m]; mapmp;

int rd()

inline void ins(int x,int y,ll dt)

inline ll qry(int x,int y)

#define add(x,y,xx,yy,dt) ins(x,y,dt),ins(x,yy+1,dt),ins(xx+1,y,dt),ins(xx+1,yy+1,dt)

int main()

else if(tpe==2)

else

} return 0;

}

NOIP模擬題 連通

給定乙個無向圖,請編寫乙個程式實現以下兩種操作 1 d x y,從原圖中刪除連線x和y頂點的邊。2 q x y,詢問x和y頂點是否連通。這也是連通問題,考慮用並查集解決。但是這是刪除的問題耶,怎麼辦?考慮將刪除變為連通,能不能將所有操作給反過來,從最後乙個操作開始處理。當然是可以的。include ...

Noip模擬題 山峰

description在n m的棋盤上不重複的填1到n m 如果乙個數字比周圍的八個數字大,那麼他就是乙個山峰。現在告訴你所有山峰的位置,問你填數的方案數mod 12345678 input 輸入第一行兩個數字 n m意義如題目描述。接下來n 行,每行 m個字元,表示非山峰,x 表示山峰。1 n 4...

NOIP模擬題 訂餐

題目描述 這個週末,joe 一如既往的拿出了外賣的點餐單。選單上從上到下列著 n 個菜,每個菜 joe 會列出乙個美味值。joe 這次希望從選單上連續地點 k 個菜,並且美 味值之和最大。但在計算美味值之和時,joe 有自己的一套計算方法 由於他會按照順序享受這 k 個菜,並且越吃越後面的菜他就越享...