本文共 1626 字,大约阅读时间需要 5 分钟。
??????????????????????????????????????????????????????????????????????????????
????:
?????:
row_prefix[i] ???i???????col_prefix[i] ???i???????????:
#include#include using namespace std;int main() { int T; cin >> T; for (int _t = 0; _t < T; ++_t) { int n, m, K, Q; cin >> n >> m >> K >> Q; vector row_exists(n + 2, 0); vector col_exists(m + 2, 0); for (int _k = 0; _k < K; ++_k) { int a, b; cin >> a >> b; row_exists[a] = 1; col_exists[b] = 1; } vector row_prefix(n + 2, 0); for (int i = 1; i <= n; ++i) { row_prefix[i] = row_prefix[i-1] + row_exists[i]; } vector col_prefix(m + 2, 0); for (int i = 1; i <= m; ++i) { col_prefix[i] = col_prefix[i-1] + col_exists[i]; } for (int _q = 0; _q < Q; ++_q) { int x1, y1, x2, y2; cin >> x1 >> y1 >> x2 >> y2; bool has_row = (row_prefix[x2] - row_prefix[x1-1]) > 0; bool has_col = (col_prefix[y2] - col_prefix[y1-1]) > 0; if (has_row || has_col) { cout << "Yes"; } else { cout << "No"; } } } return 0; }
????:
row_exists?col_exists??????????????:
???????:
row_prefix?col_prefix?????????????????????:
?????????????????????????????O(1)????????????
转载地址:http://xiib.baihongyu.com/