博客
关于我
P1502 窗口的星星
阅读量:553 次
发布时间:2019-03-09

本文共 1743 字,大约阅读时间需要 5 分钟。

题目链接

代码

#include
#include
#include
#include
using namespace std;typedef pair
PII;const int N = 10010;vector
row;struct Line { int x, y1, y2, v; bool operator < (const Line& l) const { return x == l.x ? v > l.v : x < l.x; }}line[N << 1];struct Node { int l, r, v, lz;}tr[N << 3];inline void eval(Node& t, int k) { t.v += k; t.lz += k;}inline void push_down(int u) { eval(tr[u << 1], tr[u].lz); eval(tr[u << 1 | 1], tr[u].lz); tr[u].lz = 0;}void build(int u, int l, int r) { tr[u] = { l , r , 0, 0}; if (l != r) { int mid = l + r >> 1; build(u << 1, l, mid), build(u << 1 | 1, mid + 1, r); }}void modify(int u, int l, int r, int k) { if (l <= tr[u].l && r >= tr[u].r) eval(tr[u], k); else { push_down(u); int mid = tr[u].l + tr[u].r >> 1; if (l <= mid) modify(u << 1, l, r, k); if (r > mid) modify(u << 1 | 1, l, r, k); tr[u].v = tr[u << 1].v > tr[u << 1 | 1].v ? tr[u << 1].v : tr[u << 1 | 1].v; }}int find(int k) { int l = 0, r = row.size() - 1; while (l < r) { int mid = l + r >> 1; if (k <= row[mid]) r = mid; else l = mid + 1; } return l + 1;}int main() { int t; scanf("%d", &t); while (t--) { int n, w, h, ans = 0; scanf("%d%d%d", &n, &w, &h); for (int i = 0; i < n; ++i) { int x, y, v; scanf("%d%d%d", &x, &y, &v); line[i << 1] = { x, y, y + h - 1, v }; line[i << 1 | 1] = { x + w - 1, y, y + h - 1, -v }; row.push_back(y); row.push_back(y + h - 1); } sort(line, line + 2 * n); sort(row.begin(), row.end()); row.erase(unique(row.begin(), row.end()), row.end()); build(1, 1, row.size()); for (int i = 0; i < 2 * n; ++i) { modify(1, find(line[i].y1), find(line[i].y2), line[i].v); ans = ans < tr[1].v ? tr[1].v : ans; } row.clear(); printf("%d\n", ans); } return 0;}

转载地址:http://nmzpz.baihongyu.com/

你可能感兴趣的文章
No 'Access-Control-Allow-Origin' header is present on the requested resource.
查看>>
No 'Access-Control-Allow-Origin' header is present on the requested resource.
查看>>
NO 157 去掉禅道访问地址中的zentao
查看>>
no available service ‘default‘ found, please make sure registry config corre seata
查看>>
No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
查看>>
no connection could be made because the target machine actively refused it.问题解决
查看>>
No Datastore Session bound to thread, and configuration does not allow creation of non-transactional
查看>>
No fallbackFactory instance of type class com.ruoyi---SpringCloud Alibaba_若依微服务框架改造---工作笔记005
查看>>
No Feign Client for loadBalancing defined. Did you forget to include spring-cloud-starter-loadbalanc
查看>>
No mapping found for HTTP request with URI [/...] in DispatcherServlet with name ...的解决方法
查看>>
No mapping found for HTTP request with URI [/logout.do] in DispatcherServlet with name 'springmvc'
查看>>
No module named 'crispy_forms'等使用pycharm开发
查看>>
No module named cv2
查看>>
No module named tensorboard.main在安装tensorboardX的时候遇到的问题
查看>>
No module named ‘MySQLdb‘错误解决No module named ‘MySQLdb‘错误解决
查看>>
No new migrations found. Your system is up-to-date.
查看>>
No qualifying bean of type XXX found for dependency XXX.
查看>>
No qualifying bean of type ‘com.netflix.discovery.AbstractDiscoveryClientOptionalArgs<?>‘ available
查看>>
No resource identifier found for attribute 'srcCompat' in package的解决办法
查看>>
no session found for current thread
查看>>