把題面改下風格:
有 n*m 個點, 每個點 i 有權值 xi,yi,zi, 要求回答 q 次詢問, 每次給定 l1, r1,l2, r2,l3,查詢有多少點滿足:
l1 ≤ xi ≤ r1
l2 ≤ yi ≤ r2
l3 = zi
說是三維 log3 的查詢, 但直接開 z 個二維樹狀陣列, log 方也行。
#includeusing namespace std;
const int n = 303;
int n, m, a[n][n];
struct bit
void ins(int x, int y, int v)
} int ask_(int x, int y)
return res;
} int ask(int lx, int rx, int ly, int ry)
} t[103];
int main()
// for(int i=1; i<=n; ++i, cout<<'\n')
// for(int j=1; j<=m; ++j) cout << t[a[i][j]].ask(i, i, j, j) << ' ';
// cout << "# " << t[2].ask_(3, 3) << '\n';
int q;
scanf("%d", &q);
while(q--)
if(op == 2)
}return 0;
}
JSOI2009 計數問題 二維樹狀陣列
題面 題解 二維樹狀陣列的板子題,學了這麼久第一次寫二維樹狀陣列,慚愧啊。怎麼寫就不說了,看 吧。跟普通的是一樣的寫法 1 include2 using namespace std 3 define r register int 4 define ac 302 5 define lowbit x x...
JSOI2009 球隊收益
因為要限制每個比賽,一勝一負,流量無法限制。所以我們可以假設先全敗,然後選擇某個人獲勝,然後用差值來改變。假設當前a勝,b負。然後獲勝一次的差值為 c a 1 a 1 d b 1 b 1 c a a d b b c 2 a 1 d 2 b 1 ac pragma gcc optimize ofast...
題解 JSOI2009遊戲
真的沒想到 果然反應太遲鈍,看到題目毫無思路,一點聯想都沒有。按照網上部落格的說法 一眼棋盤染色二分 二分圖 最大匹配 bingo?果然我還是太弱了 我們將棋盤黑白染色,相鄰兩點之間的轉移轉化為圖上的邊。根據最大匹配的定義,如果我們最開始將棋子放在乙個未匹配的點上,一定會到達乙個匹配點 不然若到達了...