扫描线水题。

#include <algorithm>
#include <iostream>
#include <cstdio>
using namespace std;
typedef long long ll;
int n, m, dx[300005], dy[300005], cntx, cnty, cnt, uu, vv, ww, aa, bb;
ll ans[100005], c[300005];
struct Node{int idd, val, xxx, yyy;
}nd[500005];
bool cmp(Node x, Node y){if(x.xxx==y.xxx)    return x.idd<y.idd;else    return x.xxx<y.xxx;
}
int lb(int x){return x&-x;
}
void add(int pos, int w){for(int i=pos; i<=cnty; i+=lb(i))c[i] += w;
}
ll query(int pos){ll re=0;for(int i=pos; i; i-=lb(i))re += c[i];return re;
}
int main(){cin>>n>>m;for(int i=1; i<=n; i++){scanf("%d %d %d", &uu, &vv, &ww);nd[++cnt] = (Node){0, ww, uu, vv};dx[++cntx] = uu;dy[++cnty] = vv;}for(int i=1; i<=m; i++){scanf("%d %d %d %d", &uu, &vv, &aa, &bb);uu--; vv--;dx[++cntx] = uu; dx[++cntx] = aa;dy[++cnty] = vv; dy[++cnty] = bb;nd[++cnt] = (Node){i, 1, uu, vv};nd[++cnt] = (Node){i, -1, uu, bb};nd[++cnt] = (Node){i, -1, aa, vv};nd[++cnt] = (Node){i, 1, aa, bb};}sort(dx+1, dx+1+cntx);sort(dy+1, dy+1+cnty);cntx = unique(dx+1, dx+1+cntx) - (dx + 1);cnty = unique(dy+1, dy+1+cnty) - (dy + 1);for(int i=1; i<=cnt; i++){nd[i].xxx = lower_bound(dx+1, dx+1+cntx, nd[i].xxx) - dx;nd[i].yyy = lower_bound(dy+1, dy+1+cnty, nd[i].yyy) - dy;}sort(nd+1, nd+1+cnt, cmp);for(int i=1; i<=cnt; i++){if(!nd[i].idd)  add(nd[i].yyy, nd[i].val);else    ans[nd[i].idd] += query(nd[i].yyy) * nd[i].val;}for(int i=1; i<=m; i++)printf("%lld\n", ans[i]);return 0;
}

转载于:https://www.cnblogs.com/poorpool/p/8574428.html

luogu3755 [CQOI2017]老C的任务相关推荐

  1. [bzoj4823][洛谷P3756][Cqoi2017]老C的方块

    Description 老 C 是个程序员. 作为一个懒惰的程序员,老 C 经常在电脑上玩方块游戏消磨时间.游戏被限定在一个由小方格排成的R行C列网格上 ,如果两个小方格有公共的边,就称它们是相邻的, ...

  2. 洛谷P3755 [CQOI2017]老C的任务 题解

    题目传送门 题目描述 老C是个程序员. 最近老C从老板那里接到了一个任务--给城市中的手机基站写个管理系统.作为经验丰富的程序员,老C轻松地完成了系统的大部分功能,并把其中一个功能交给你来实现. 由于 ...

  3. BZOJ 4823 Luogu P3756 [CQOI2017]老C的方块 (网络流、最小割)

    题目链接 (Luogu) https://www.luogu.org/problem/P3756 (BZOJ) http://lydsy.com/JudgeOnline/problem.php?id= ...

  4. [CQOI2017] 老C的任务(差分 + 树状数组 / K-D tree)

    problem luogu-P3755 solution 这题第一眼矩阵内的点权值和,马上就是 K-D tree\text{K-D tree}K-D tree 不过脑子的敲. 这其实就是个二维数点问题 ...

  5. [CQOI2017] 老C的键盘(树形dp + 组合数)

    problem luogu-P3757 solution observation:\text{observation}:observation: hi/2−hih_{i/2}-h_ihi/2​−hi​ ...

  6. Bzoj4822 [Cqoi2017]老C的任务

    同样没题面 写完以后的感想是:我™都干了点啥. 正解是扫描线+树状数组 Bzoj1935 [SHOI2007]Tree 园丁的烦恼 ↑差不多是原题. 然而--我写了K-Dtree 思维江化啊 幸好Bz ...

  7. 题解 [CQOI2017] 老 C 的方块

    这题我们教练出的. Sto nodgd Orz 一般来说,看到网格题,想到网络流.看到要炸点,考虑染色,这道题的四个形状都是四个格子,考虑染成四色(图片来自 shadowice1984 的题解): 那 ...

  8. P3755 [CQOI2017]老C的任务

    传送门 可以离线,把询问拆成四个,然后把所有的按\(x\)坐标排序,这样就只要考虑\(y\)坐标了.然后把\(y\)坐标离散化,用树状数组统计即可 记得开longlong //minamoto #in ...

  9. 4824: [Cqoi2017]老C的键盘3167: [Heoi2013]Sao

    题意: 对一棵树的边定向,求拓扑序方案数. 题解: 因为两颗子树相对独立,所以可以树形dp. f [ x ] [ i ] f[x][i] f[x][i]表示x这棵子树,根节点在序列第i位,转移什么就随 ...

最新文章

  1. python if elif else 区别
  2. Nginx —— nginx的命令行控制(nginx的启动与停止、重载配置文件、回滚日志文件、平滑升级等操作)
  3. 【caffe】使用自己的图像数据训练lenet并用opencv进行预测
  4. ZwReadFile读TXT文件
  5. 【Java】多线程SynchronizedVolatile、锁升级过程 - 预习+第一天笔记
  6. react 生命挂钩_如何在GraphQL API中使用React挂钩来管理状态
  7. 网关 Apache APISIX 在 360 基础运维平台项目中的实践
  8. GIS应用开发AO(1)_普通几何图形绘制
  9. 3、electron打包生成exe文件
  10. Linux C/C++的编译
  11. css一行内容过多显示省略号
  12. 【雕爷学编程】Arduino动手做(84)---DS1307时钟模块
  13. 【智能车】模糊PID控制原理详解与代码实现
  14. 基于simulink的模糊PID控制器设计与实现
  15. 学以致用——使用VBA从身份证号提取性别、出生年月日、年龄(Extract gender, DOB, age from ID)
  16. Redis的基本操作
  17. 计算机软件选修课选什么好,互联网行业,软件工程专业学什么?
  18. 剥茧抽丝,细数模块化的前世今生
  19. 广西行政村数据shp_全国 shp 矢量数据汇总(四):全国行政区划基础矢量数据(精确到乡镇级别)...
  20. ES 检索 word、pdf 文档插件 ingest attachment 的管道配置和文档结构映射

热门文章

  1. KubeEdge 王泽锋:只有代码没有生命力,凝聚开发者的社区才能活力无限 I OpenTEKr 大话开源 Vol.8
  2. 天耀18期 -09.数组-排序【作业】.doc
  3. python字母表顺序函数_python获取字母在字母表对应位置的几种方法及性能对比较...
  4. windows系统文件简述
  5. 如何科学增长邮件订阅用户?
  6. 局域网无线投屏到其他电脑
  7. C语言学习笔记-P1 初识C语言(2)
  8. 中国科学院大学计算机非全日制,中国科学院大学能考非全日制研究生?
  9. 倪光南——世人笑我太疯癫,我笑他人看不穿
  10. RFID打印机和条码打印机的4大区别