luogu3755 [CQOI2017]老C的任务
扫描线水题。
#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的任务相关推荐
- [bzoj4823][洛谷P3756][Cqoi2017]老C的方块
Description 老 C 是个程序员. 作为一个懒惰的程序员,老 C 经常在电脑上玩方块游戏消磨时间.游戏被限定在一个由小方格排成的R行C列网格上 ,如果两个小方格有公共的边,就称它们是相邻的, ...
- 洛谷P3755 [CQOI2017]老C的任务 题解
题目传送门 题目描述 老C是个程序员. 最近老C从老板那里接到了一个任务--给城市中的手机基站写个管理系统.作为经验丰富的程序员,老C轻松地完成了系统的大部分功能,并把其中一个功能交给你来实现. 由于 ...
- BZOJ 4823 Luogu P3756 [CQOI2017]老C的方块 (网络流、最小割)
题目链接 (Luogu) https://www.luogu.org/problem/P3756 (BZOJ) http://lydsy.com/JudgeOnline/problem.php?id= ...
- [CQOI2017] 老C的任务(差分 + 树状数组 / K-D tree)
problem luogu-P3755 solution 这题第一眼矩阵内的点权值和,马上就是 K-D tree\text{K-D tree}K-D tree 不过脑子的敲. 这其实就是个二维数点问题 ...
- [CQOI2017] 老C的键盘(树形dp + 组合数)
problem luogu-P3757 solution observation:\text{observation}:observation: hi/2−hih_{i/2}-h_ihi/2−hi ...
- Bzoj4822 [Cqoi2017]老C的任务
同样没题面 写完以后的感想是:我™都干了点啥. 正解是扫描线+树状数组 Bzoj1935 [SHOI2007]Tree 园丁的烦恼 ↑差不多是原题. 然而--我写了K-Dtree 思维江化啊 幸好Bz ...
- 题解 [CQOI2017] 老 C 的方块
这题我们教练出的. Sto nodgd Orz 一般来说,看到网格题,想到网络流.看到要炸点,考虑染色,这道题的四个形状都是四个格子,考虑染成四色(图片来自 shadowice1984 的题解): 那 ...
- P3755 [CQOI2017]老C的任务
传送门 可以离线,把询问拆成四个,然后把所有的按\(x\)坐标排序,这样就只要考虑\(y\)坐标了.然后把\(y\)坐标离散化,用树状数组统计即可 记得开longlong //minamoto #in ...
- 4824: [Cqoi2017]老C的键盘3167: [Heoi2013]Sao
题意: 对一棵树的边定向,求拓扑序方案数. 题解: 因为两颗子树相对独立,所以可以树形dp. f [ x ] [ i ] f[x][i] f[x][i]表示x这棵子树,根节点在序列第i位,转移什么就随 ...
最新文章
- python if elif else 区别
- Nginx —— nginx的命令行控制(nginx的启动与停止、重载配置文件、回滚日志文件、平滑升级等操作)
- 【caffe】使用自己的图像数据训练lenet并用opencv进行预测
- ZwReadFile读TXT文件
- 【Java】多线程SynchronizedVolatile、锁升级过程 - 预习+第一天笔记
- react 生命挂钩_如何在GraphQL API中使用React挂钩来管理状态
- 网关 Apache APISIX 在 360 基础运维平台项目中的实践
- GIS应用开发AO(1)_普通几何图形绘制
- 3、electron打包生成exe文件
- Linux C/C++的编译
- css一行内容过多显示省略号
- 【雕爷学编程】Arduino动手做(84)---DS1307时钟模块
- 【智能车】模糊PID控制原理详解与代码实现
- 基于simulink的模糊PID控制器设计与实现
- 学以致用——使用VBA从身份证号提取性别、出生年月日、年龄(Extract gender, DOB, age from ID)
- Redis的基本操作
- 计算机软件选修课选什么好,互联网行业,软件工程专业学什么?
- 剥茧抽丝,细数模块化的前世今生
- 广西行政村数据shp_全国 shp 矢量数据汇总(四):全国行政区划基础矢量数据(精确到乡镇级别)...
- ES 检索 word、pdf 文档插件 ingest attachment 的管道配置和文档结构映射
热门文章
- KubeEdge 王泽锋:只有代码没有生命力,凝聚开发者的社区才能活力无限 I OpenTEKr 大话开源 Vol.8
- 天耀18期 -09.数组-排序【作业】.doc
- python字母表顺序函数_python获取字母在字母表对应位置的几种方法及性能对比较...
- windows系统文件简述
- 如何科学增长邮件订阅用户?
- 局域网无线投屏到其他电脑
- C语言学习笔记-P1 初识C语言(2)
- 中国科学院大学计算机非全日制,中国科学院大学能考非全日制研究生?
- 倪光南——世人笑我太疯癫,我笑他人看不穿
- RFID打印机和条码打印机的4大区别