柵欄 隨機 BIT

2021-08-30 19:22:37 字數 1331 閱讀 1764

題目大意:

給一張網格圖,每次給乙個矩形邊界套上/拆掉柵欄,或者詢問兩個點能否不跨越柵欄到達。保證任意時刻不存在兩個相交柵欄。n,m

≤2000,q

≤105

n,m\le2000,q\le10^5

n,m≤20

00,q

≤105

題解:矩形異或乙個隨機數即可,用二維bit維護。

#include

#define gc getchar()

#define rep(i,a,b) for(int i=a;i<=b;i++)

#define rep(i,v) rep(i,0,(int)v.size()-1)

#define lint long long

#define db long double

#define ull unsigned lint

#define pb push_back

#define mp make_pair

#define fir first

#define sec second

#define debug(x) cerr<<#x<<"="<#define sp <<" "

#define ln typedef pair<

int,

int> pii;

typedef set<

int>

::iterator sit;

inline

intinn()

const

int n=

2010

;#define lb(x) (x&-x)

#define bas 2002ll

#define hv(a,b,c,d) (a*bas*bas*bas+b*bas*bas+c*bas+d)

struct rand

inline ull operator()

()}rnd;

int n,m;ull b[n]

[n];map val;

inline ull update

(int x,

int y,ull v)

inline ull query

(int x,

int y)

intmain()

else

if(tp==2)

else

printf

(query

(a,b)

==query

(x,y)

?"yes\n"

:"no\n");

}return0;

}

LintCode 柵欄染色

lintcode 柵欄染色 lintcode表述有問題,原文是 必須保證任意兩個相鄰的柱子顏色不同 應該表述為 至多有兩根相鄰的柱子具有相同的顏色 此題使用動態規劃,狀態轉移方程為f i f i 1 k 1 f i 2 k 1 顯然f 0 k,f 1 k k 方法一 class solution p...

514 柵欄染色

3.28 這個題自己的錯誤,廢了很多時間。如果是單純地相鄰不許同色的話,應該就是這樣的 public static int numways1 int n,int k if k 1 n 2 int x int math.pow k 1,n 1 return x k 2 n 1 如果是不允許三根柱子相鄰...

USACO Overfencing 穿越柵欄

農夫john 在外面的田野上搭建了乙個巨大的用柵欄圍成的迷宮。幸運的是,他在迷宮的邊界上留出了兩段柵欄作為迷宮的出口。更幸運的是,他所建造的迷宮是乙個 完美的 迷宮 即你能從迷宮中的任意一點找到一條走出迷宮的路。給定迷宮的寬w 1 w 38 及長h 1 h 100 2 h 1行,每行2 w 1的字元...