bzoj 4822: [Cqoi2017]老C的任务
4822: [Cqoi2017]老C的任务
练手速...
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
typedef long long ll;
const int N = 1e6+5;
inline int read() {
char c=getchar(); int x=0,f=1;
while(c<'0' || c>'9') {if(c=='-')f=-1; c=getchar();}
while(c>='0' && c<='9') {x=x*10+c-'0'; c=getchar();}
return x*f;
}
int n, Q, mp[N], tot, x1, y1, x2, y2; ll ans[N];
struct meow {
int x, y, type, qid; ll v;
bool operator <(const meow &a) const {return x == a.x ? type < a.type : x < a.x;}
} q[N];
namespace bit {
int n; ll c[N];
inline void add(int p, ll v) {for(; p<=n; p+=p&-p) c[p] += v;}
inline ll sum(int p) {ll ans = 0; for(; p; p-=p&-p) ans += c[p]; return ans;}
}
int main() {
freopen("in", "r", stdin);
n = read(); Q = read();
for(int i=1; i<=n; i++)
mp[++mp[0]] = q[i].x = read(), mp[++mp[0]] = q[i].y = read(), q[i].v = read(), q[i].type = 0;
tot = n;
for(int i=1; i<=Q; i++) {
mp[++mp[0]] = x1 = read()-1; mp[++mp[0]] = y1 = read()-1;
mp[++mp[0]] = x2 = read(); mp[++mp[0]] = y2 = read();
tot++; q[tot] = (meow){x1, y1, 1, i, 1LL};
tot++; q[tot] = (meow){x2, y2, 1, i, 1LL};
tot++; q[tot] = (meow){x2, y1, 1, i, -1LL};
tot++; q[tot] = (meow){x1, y2, 1, i, -1LL};
}
sort(mp+1, mp+1+mp[0]); mp[0] = unique(mp+1, mp+1+mp[0]) - mp - 1;
for(int i=1; i<=tot; i++) {
q[i].x = lower_bound(mp+1, mp+1+mp[0], q[i].x) - mp;
q[i].y = lower_bound(mp+1, mp+1+mp[0], q[i].y) - mp;
}
sort(q+1, q+1+tot);
bit::n = mp[0];
for(int i=1; i<=tot; i++) {
if(q[i].type) ans[q[i].qid] += q[i].v * bit::sum(q[i].y);
else bit::add(q[i].y, q[i].v);
}
for(int i=1; i<=Q; i++) printf("%lld\n", ans[i]);
}
bzoj 4822: [Cqoi2017]老C的任务的更多相关文章
- ●BZOJ 4822 [Cqoi2017]老C的任务
题链: https://www.luogu.org/problemnew/show/P3755 (洛谷上数据范围给全了的) 题解: 树状数组,离线询问 (本来想弄一个二维树状数组/二维RMQ,然后直接 ...
- BZOJ 4822 [Cqoi2017]老C的任务 ——树状数组
直接离散化之后用树状数组扫一遍. 把每一个询问拆成四个就可以做了. %Silvernebula 怒写KD-Tree #include <map> #include <cmath> ...
- bzoj 4822: [Cqoi2017]老C的任务【扫描线+树状数组+二维差分】
一个树状数组能解决的问题分要用树套树--还写错了我别是个傻子吧? 这种题还是挺多的,大概就是把每个矩形询问差分拆成四个点前缀和相加的形式(x1-1,y1-1,1)(x2.y2,1)(x1-1,y2,- ...
- bzoj 4823: [Cqoi2017]老C的方块 [最小割]
4823: [Cqoi2017]老C的方块 题意: 鬼畜方块游戏不解释... 有些特殊边,有些四个方块组成的图形,方块有代价,删掉一些方块使得没有图形,最小化代价. 比较明显的最小割,一个图形中必须删 ...
- bzoj 4824: [Cqoi2017]老C的键盘
Description 老 C 是个程序员. 作为一个优秀的程序员,老 C 拥有一个别具一格的键盘,据说这样可以大幅提升写程序的速度,还能让写出来的程序 在某种神奇力量的驱使之下跑得非常快.小 ...
- bzoj 4823 [Cqoi2017]老C的方块——网络流
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4823 一个不合法方案其实就是蓝线的两边格子一定选.剩下两部分四相邻格子里各选一个. 所以这个 ...
- BZOJ 4823: [Cqoi2017]老C的方块
分析: 我觉得我的网络流白学了...QAQ... 其实数据范围本是无法用网络流跑过去的,然而出题者想让他跑过去,也就跑过去了... 看到题目其实感觉很麻烦,不知道从哪里入手,那么仔细观察所给出的有用信 ...
- BZOJ 4823 [Cqoi2017]老C的方块 ——网络流
lrd的题解:http://www.cnblogs.com/liu-runda/p/6695139.html 我还是太菜了.以后遇到这种题目应该分析分析性质的. 网络流复杂度真是$O(玄学)$ #in ...
- BZOJ 4824 [Cqoi2017]老C的键盘 ——树形DP
每一个限制条件相当于一条有向边, 忽略边的方向,就成了一道裸的树形DP题 同BZOJ3167 唯一的区别就是这个$O(n^3)$能过 #include <map> #include < ...
随机推荐
- hdu_1286找新朋友(欧拉定理)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1286 找新朋友 Time Limit: 2000/1000 MS (Java/Others) M ...
- MySQL数据库全备
#function:MYSQL自动全备 #version:1.0.0 #author:wangyanlin #date:2017/08/03 #---------------------------- ...
- sql中查询同一列所有值出现的次数
尊重原创:http://blog.csdn.net/love_java_cc/article/details/52234889 有表如下table3: 需要查询country中各个国家出现的次数 SQ ...
- python网络编程基础
一.客户端/服务器架构 网络中到处都应有了C/S架构,我们学习socket就是为了完成C/S架构的开发. 二.scoket与网络协议 如果想要实现网络通信我们需要对tcpip,http等很多网络知识有 ...
- 浏览器与CDN缓存行为
@地址栏回车 1. 未过期: 浏览器拦截,直接返回: (expires/cache-control两个参数决定,如果两个参数都有,cache-control覆盖expires); 2. 已过期: et ...
- Nginx实战之反向代理WebSocket的配置实例
http://www.jb51.net/article/112183.htm 最近在工作中遇到一个需求,需要使用 nginx 反向代理websocket,经过查找一番资料,目前已经测试通过,所以这篇文 ...
- jquery ajax 请求中多出现一次OPTIONS请求及其解决办法
http://www.tangshuang.net/2271.html 在上一篇<服务端php解决jquery ajax跨域请求restful api问题及实践>中,我简单介绍了如何通过服 ...
- 给外行或者刚入门普及一下关于C#,.NET Framework(.NET框架),.Net,CLR,ASP,ASP.Net, VS,以及.NET Core的概念
一.概念 1. C# :C#是微软公司发布的一种面向对象的.运行于.NET Framework之上的高级程序设计语言. 2..NET Framework(.NET框架):.NET framework ...
- Java 几种动态代理实现及其性能比较
原处出之于阿里liangf Interface: package com.sunchao.jdkdyproxy; public interface Subject { void request(); ...
- requireJs 踩的坑
<!-- RequireJS --> <script src="assets/js/require.min.js" data-main="assets/ ...