扫描线水题。

#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;
}

luogu3755 [CQOI2017]老C的任务的更多相关文章

  1. bzoj 4822: [Cqoi2017]老C的任务

    4822: [Cqoi2017]老C的任务 练手速... #include <iostream> #include <cstdio> #include <cstring& ...

  2. bzoj 4823: [Cqoi2017]老C的方块 [最小割]

    4823: [Cqoi2017]老C的方块 题意: 鬼畜方块游戏不解释... 有些特殊边,有些四个方块组成的图形,方块有代价,删掉一些方块使得没有图形,最小化代价. 比较明显的最小割,一个图形中必须删 ...

  3. [CQOI2017]老C的键盘

    [CQOI2017]老C的键盘 题目描述 额,网上题解好像都是用的一大堆组合数,然而我懒得推公式. 设\(f[i][j]\)表示以\(i\)为根,且\(i\)的权值为\(j\)的方案数. 转移: \[ ...

  4. 【BZOJ4822】[CQOI2017]老C的任务(扫描线)

    [BZOJ4822][CQOI2017]老C的任务(扫描线) 题面 BZOJ 洛谷 题解 没有修改操作,都不需要分治了... 直接排序之后扫描线算贡献就好了... 不知道为啥洛谷上过不了... #in ...

  5. [BZOJ4824][Cqoi2017]老C的键盘 树形dp+组合数

    4824: [Cqoi2017]老C的键盘 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 218  Solved: 171[Submit][Statu ...

  6. [BZOJ4822][CQOI2017]老C的任务(扫描线+树状数组)

    4822: [Cqoi2017]老C的任务 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 379  Solved: 203[Submit][Statu ...

  7. [BZOJ4824][CQOI2017]老C的键盘(树形DP)

    4824: [Cqoi2017]老C的键盘 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 193  Solved: 149[Submit][Statu ...

  8. bzoj4823: [Cqoi2017]老C的方块(最小割)

    4823: [Cqoi2017]老C的方块 题目:传送门 题解: 毒瘤题ORZ.... 太菜了看出来是最小割啥边都不会建...狂%大佬强强强   黑白染色?不!是四个色一起染,四层图跑最小割... 很 ...

  9. 【BZOJ4823】[CQOI2017]老C的方块(网络流)

    [BZOJ4823][CQOI2017]老C的方块(网络流) 题面 BZOJ 题解 首先还是给棋盘进行黑白染色,然后对于特殊边左右两侧的格子单独拎出来考虑. 为了和其他格子区分,我们把两侧的这两个格子 ...

随机推荐

  1. lowbit

    树状数组(lowbit) Time Limit:1000ms   Memory Limit:128MB 题目描述 这天,LYK在学习树状数组. 当它遇到一个叫lowbit的函数时有点懵逼.lowbit ...

  2. localStorage 和 sessionStorage的区别

    存储对象: 在主流浏览器中,添加了html5  Web Storage API 的接口,storage是一个存储对象,它包括会话存储(session storage)或本地存储(local stora ...

  3. Java开发笔记(九十六)线程的基本用法

    每启动一个程序,操作系统的内存中通常会驻留该程序的一个进程,进程包含了程序的完整代码逻辑.一旦程序退出,进程也就随之结束:反之,一旦强行结束进程,程序也会跟着退出.普通的程序代码是从上往下执行的,遇到 ...

  4. 如何加快HTML页面加载速度

    1. 页面减肥 a. 页面的肥瘦是影响加载速度最重要的因素. b. 删除不必要的空格.注释. c. 将inline的script和css移到外部文件. d. 可以使用HTML Tidy来给HTML减肥 ...

  5. datagrid数据网格获取所有选中行的索引,插入某个列值为其他列的运算值

    获取所有选中行的索引,存入数组ary中: var data=$("#dg").datagrid("getSelections"); var ary=[]; fo ...

  6. PeopleSoft FSCM Production Support 案例分析之一重大紧急事故发生时的应对策略

    案例背景: 今天一大早用户打电话来讲昨天上传的银行的forex payment return file好像没有被处理到,我一听就觉得纳闷,因为昨天晚上operator也没有给我打电话啊(如果有job ...

  7. 介绍hadoop的好文章

    http://www.centoscn.com/image-text/install/2014/1121/4158.html http://www.cnblogs.com/xia520pi/categ ...

  8. CSS-学习笔记五

    1.  权重: 内联:A ID:B Class:C 标签:D 继承:0 2.  文字阴影text-shadow 3.  文字缩进text-index 4.  文本换行 5.  文本溢出 6.  圆角 ...

  9. 【春节版】年度精品 XP,32/64位Win7,32/64位Win8,32/64位Win10系统

    本系统是10月5日最新完整版本的Windows10 安装版镜像,win10正式版,更新了重要补丁,提升应用加载速度,微软和百度今天宣布达成合作,百度成为win10 Edge浏览器中国默认主页和搜索引擎 ...

  10. Session 机制和 Cookie 机制

    Session 机制和 Cookie 机制 HTTP协议是无状态的, 而Cookie和Session都是在无状态的基础上希望实现有状态的效果, 两者是在客户端或者是服务端使用缓存等手段来实现状态的维护 ...