扫描线水题。

  1. #include <algorithm>
  2. #include <iostream>
  3. #include <cstdio>
  4. using namespace std;
  5. typedef long long ll;
  6. int n, m, dx[300005], dy[300005], cntx, cnty, cnt, uu, vv, ww, aa, bb;
  7. ll ans[100005], c[300005];
  8. struct Node{
  9. int idd, val, xxx, yyy;
  10. }nd[500005];
  11. bool cmp(Node x, Node y){
  12. if(x.xxx==y.xxx) return x.idd<y.idd;
  13. else return x.xxx<y.xxx;
  14. }
  15. int lb(int x){
  16. return x&-x;
  17. }
  18. void add(int pos, int w){
  19. for(int i=pos; i<=cnty; i+=lb(i))
  20. c[i] += w;
  21. }
  22. ll query(int pos){
  23. ll re=0;
  24. for(int i=pos; i; i-=lb(i))
  25. re += c[i];
  26. return re;
  27. }
  28. int main(){
  29. cin>>n>>m;
  30. for(int i=1; i<=n; i++){
  31. scanf("%d %d %d", &uu, &vv, &ww);
  32. nd[++cnt] = (Node){0, ww, uu, vv};
  33. dx[++cntx] = uu;
  34. dy[++cnty] = vv;
  35. }
  36. for(int i=1; i<=m; i++){
  37. scanf("%d %d %d %d", &uu, &vv, &aa, &bb);
  38. uu--; vv--;
  39. dx[++cntx] = uu; dx[++cntx] = aa;
  40. dy[++cnty] = vv; dy[++cnty] = bb;
  41. nd[++cnt] = (Node){i, 1, uu, vv};
  42. nd[++cnt] = (Node){i, -1, uu, bb};
  43. nd[++cnt] = (Node){i, -1, aa, vv};
  44. nd[++cnt] = (Node){i, 1, aa, bb};
  45. }
  46. sort(dx+1, dx+1+cntx);
  47. sort(dy+1, dy+1+cnty);
  48. cntx = unique(dx+1, dx+1+cntx) - (dx + 1);
  49. cnty = unique(dy+1, dy+1+cnty) - (dy + 1);
  50. for(int i=1; i<=cnt; i++){
  51. nd[i].xxx = lower_bound(dx+1, dx+1+cntx, nd[i].xxx) - dx;
  52. nd[i].yyy = lower_bound(dy+1, dy+1+cnty, nd[i].yyy) - dy;
  53. }
  54. sort(nd+1, nd+1+cnt, cmp);
  55. for(int i=1; i<=cnt; i++){
  56. if(!nd[i].idd) add(nd[i].yyy, nd[i].val);
  57. else ans[nd[i].idd] += query(nd[i].yyy) * nd[i].val;
  58. }
  59. for(int i=1; i<=m; i++)
  60. printf("%lld\n", ans[i]);
  61. return 0;
  62. }

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. poj2135 最小费用流

    添加超级源点(与点1之间的边容量为2,权值为0)和超级汇点(与点N之间的边容量为2,权值为0),求流量为2的最小费用流.注意是双向边. #include <iostream> #inclu ...

  2. 进程间通信,把字符串指针作为参数通过SendMessage传递给另一个进程,不起作用

    参数发送进程: CString csCmd=AfxGetApp()->m_lpCmdLine; if (!csCmd.IsEmpty()) { pWndPrev->SendMessage( ...

  3. powershell 根据错误GUID查寻错误详情

    使用azurepowershell 部署模板时,碰到了下面类似的问题: The template deployment 'ExampleDeployment-' is not valid accord ...

  4. Yslow使用方法

    Yslow是雅虎开发的基于网页性能分析浏览器插件,从年初我使用了YSlow后,改变了博客模板大量冗余代码,不仅提升了网页的打开速度,这款插件还帮助我分析了不少其他网站的代码,之前我还特意写了提高网站速 ...

  5. HDU 1520 Anniversary party (树形DP,入门)

    题意:给一棵树,每个节点都有权值,要求选择部分节点出来,使得权值之和最大,但是每对(父亲,儿子)中最多只能挑一个. 思路: 比较入门的题,每个节点可以选也可以不选.若当前节点选的话,孩子必须全部不选: ...

  6. Android(java)学习笔记143:Android中View动画之 XML实现 和 代码实现

    1.Animation 动画类型 Android的animation由四种类型组成: XML中: alph 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动 ...

  7. Higher level thinking

    「Higher level thinking」-- 出自 Ray Dalio 的<Principles>(PDF 原文:Principles by Ray Dalio) Higher le ...

  8. 利用enum4linux 445端口+wordpress插件任意文件上传的一次渗透

    探测内网80端口发现目标IP 目标使用Apache  2.4.7web服务中间件 使用linux    Ubuntu系统 使用御剑扫描了目录 目录扫描到了 http://192.168.31.236/ ...

  9. git 添加 ,密匙

    转载此处   https://blog.csdn.net/xiayiye5/article/details/79652296

  10. leetcode_day1

    1.给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个数组中同样 ...