乱人伦 国语对白海角社区,五月激情丁香婷婷综合中文字幕,欧美伊人婷婷久久五月综合,亚洲精品无amm毛片,亚洲男人第一无码AV网站,国产日韩欧美丝袜一区二区,亚洲一区精品在线观看

Rooks Defenders(二分)-至尊平台APP首页

Rooks Defenders(二分)

2026-01-16 15:27:34投稿人:聚力體育手機版入口(上饒)有限公司圍觀96363 評論

Rooks Defenders(二分)

題目 https://codeforces.com/contest/1679/problem/C

題意 :給定一個的矩陣,有三種操作

  • 往矩陣埋一顆地雷,保證對應的點之前不存在地雷 。
  • 往矩陣挖掉一個顆地雷 ,保證對應的點之前存在地雷 。
  • 查詢子矩陣是否所有點都被地雷覆蓋 。一個點(x,y)被地雷覆蓋 ,當且僅當至少存在一個地雷(a,b) ,使得x==a或y==b。即至少存在一個地雷和它同行或同列。

思路:維護沒有被地雷覆蓋的行和列。對于每次查詢,如果在對應范圍內(nèi)  ,存在至少一個沒有被覆蓋的行 ,和至少一個沒有被覆蓋的列,則說明子矩陣沒有被覆蓋  。否則 ,說明矩陣被完全覆蓋。詳見代碼。


#include using namespace std;const int maxn = 100010;int n, q, op;int x, y, x2, y2;setrow, col;int numr[maxn], numc[maxn];void init() { 	row.clear();	col.clear();	memset(numr, 0, sizeof(numr));	memset(numc, 0, sizeof(numc));	vectorve;	for (int i = 1; i <= n; ++i) { 		ve.push_back(i);	}	row = { ve.begin(), ve.end()};	col = { ve.begin(), ve.end()};}// 查找s集合是否存在 [st,ed] 的元素 bool check(set&s, int st, int ed) { 	// >= st	// 用通用lower_bound超時了