#include<stdio.h>//数据弱线段树延迟更新水过

#define N 100100

struct node {

int x,y,yanchi,num;

}a[N*4];

void build(int t,int x,int y) {

a[t].x=x;

a[t].y=y;

a[t].yanchi=0;

a[t].num=0;

if(x==y)

return ;

int temp=t<<1;

int mid=(x+y)/2;

build(temp,x,mid);

build(temp+1,mid+1,y);

}

void update(int t,int x,int y) {

if(a[t].x==x&&a[t].y==y) {

a[t].yanchi++;

return ;

}

a[t].num=a[t].num+y-x+1;

int temp=t<<1;

int mid=(a[t].x+a[t].y)/2;

if(mid<x)

update(temp+1,x,y);

else

if(mid>=y)

update(temp,x,y);

else {

update(temp,x,mid);

update(temp+1,mid+1,y);

}

return;

}

int qury(int t,int h) {

if(a[t].x==h&&a[t].y==h) 

return a[t].num+a[t].yanchi;

a[t].num=a[t].num+a[t].yanchi*(a[t].y-a[t].x+1);

int temp=t<<1;

a[temp].yanchi+=a[t].yanchi;

a[temp+1].yanchi+=a[t].yanchi;

a[t].yanchi=0;

int mid=(a[t].x+a[t].y)/2;

if(mid<h)

return qury(temp+1,h);

else

return qury(temp,h);

}

int main() {

int t,n,m,x,y,i,k,count=0;

scanf("%d",&t);

while(t--) {

scanf("%d%d",&n,&m);

printf("Case #%d:\n",++count);

build(1,1,100000);

for(i=0;i<n;i++) {

scanf("%d%d",&x,&y);

update(1,x,y);

}

while(m--) {

scanf("%d",&k);

printf("%d\n",qury(1,k));

}

}

return 0;

}

hdu 4325的更多相关文章

  1. HDU 4325 Flowers(树状数组+离散化)

    http://acm.hdu.edu.cn/showproblem.php?pid=4325 题意:给出n个区间和m个询问,每个询问为一个x,问有多少个区间包含了x. 思路: 因为数据量比较多,所以需 ...

  2. (线段树 区间运算求点)Flowers -- hdu -- 4325

    http://acm.hdu.edu.cn/showproblem.php?pid=4325 Flowers Time Limit: 4000/2000 MS (Java/Others)    Mem ...

  3. hdu 4325 Flowers(区间离散化)

    http://acm.hdu.edu.cn/showproblem.php?pid=4325 Flowers Time Limit: 4000/2000 MS (Java/Others)    Mem ...

  4. HDU 4325 Flowers 树状数组+离散化

    Flowers Problem Description As is known to all, the blooming time and duration varies between differ ...

  5. hdu 4325 树状数组+离散化

    思路:这题的思路很容易想到,把所有时间点离散化,然后按时间一步一步来,当到达时间i的时候处理所有在i处的查询. 这个代码怎一个挫字了得 #include<iostream> #includ ...

  6. HDU 4325 Flowers(树状数组)

    Flowers Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Sub ...

  7. HDU 4325 Contest 3

    很明显的区间加减单点查询.但由于规模大,于是离散化.在离散化的时候,可以把要查询的点也加入离散化的数组中. #include <iostream> #include <algorit ...

  8. HDU 4325 离散化+树状数组 或者 不使用树状数组

    题意:给出一些花的开放时间段,然后询问某个时间点有几朵花正在开放. 由于ti<1e9,我们需要先将时间离散化,然后将时间点抽象为一个数组中的点,显然,我们需要进行区间更新和单点查询,可以考虑线段 ...

  9. 2012 #3 Flowers

    Flowers Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit Stat ...

随机推荐

  1. 1、IO概述及File类

  2. Python multiprocessing相关疑问

    1. multiprocessing 和 threading有什么区别? threading module并没有真正利用多核.而multiprocessing 利用subprocess避开了pytho ...

  3. jmeter(二)元件的作用域与执行顺序

    1.元件的作用域 JMeter中共有8类可被执行的元件(测试计划与线程组不属于元件),这些元件中,取样器是典型的不与其它元件发生交互作用的元件,逻辑控制器只对其子节点的取样器有效,而其它元件(conf ...

  4. 451 Sort Characters By Frequency 根据字符出现频率排序

    给定一个字符串,请将字符串里的字符按照出现的频率降序排列.示例 1:输入:"tree"输出:"eert"解释:'e'出现两次,'r'和't'都只出现一次.因此' ...

  5. DEV—【GridControl主从表】

    先附上效果图,不是想要这个效果的朋友就不用可以继续寻找了. DEV—GridControl制作主从表: (注:此例没有用到数据库,只是单纯的在内存中操作数据.) 写这一笔,是为了能更好的理解主从表,的 ...

  6. css靠左,靠右

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. Sublime Text 2/3 输入法修复[Ubuntu(Debian)]

    一直想找一个可以替代sublime的IDE主要还是hi因为没有好的方法解决中文输入的问题, 今天在网上找到一个非常不错的方法,亲自实验是可行的,就记录下来了,我的系统是ubuntu16.04 Subl ...

  8. C++学习之继承篇

    今天通过对实验二继承,重载,覆盖的学习,让我更深一步理解了这些概念的区别. 首先来明确一个概念,函数名即地址,也就是说函数名就是个指针. 编译阶段,编译器为每个函数的代码分配一个地址空间并编译函数代码 ...

  9. python 实现代理服务器

    # encoding:utf-8 import socket import thread import re def getAddr(d): a = re.search("Host: (.* ...

  10. java线程池 多线程搜索文件包含关键字所在的文件路径

    文件读取和操作类 import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; publi ...