#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. $.each遍历json对象(java将对象转化为json格式以及将json解析为普通对象)

    查看一个简单的jQuery的例子来遍历一个JavaScript数组对象. var json = [ {"id":"1","tagName": ...

  2. 如何通过SecureCRT作为客户端连接Linux服务器

    主机cmd ping虚拟机失败 打开计算机-管理-服务,找到所有以VMare开头的服务,右键点击启动即可,此时主机即可ping通虚拟机 可ping通之后,在主机cmd窗口输入 ssh root@192 ...

  3. JAVA一些错误代码

    //算术异常 ArithmeticExecption //空指针异常类 NullPointerException //类型强制转换异常 ClassCastException //数组负下标异常 Neg ...

  4. 移动端 H5 拍照 从手机选择图片,移动端预览,图片压缩,图片预览,再上传服务器

    前言:最近公司的项目在做全网营销,要做非微信浏览器的wap 站 的改版,其中涉及到的一点技术就是采用H5 选择手机相册中的图片,或者拍照,再将获取的图片进行压缩之后上传. 这个功能模块主要有这5点比较 ...

  5. 掌握Spark机器学习库-07-最小二乘法

    1)最小化残差平方和 2)原理,推导过程 3)例子

  6. linux下php访问sql server设置

    安装freeIDS 官网下载地址: wget ftp://ftp.freetds.org/pub/freetds/stable/freetds-1.00.18.tar.gz 1.1.到下载目录解压 t ...

  7. python学习一 hello world of python

    我使用的环境是 OS:Red Hat Enterprise Linux AS release 4 (Nahant Update 3) PYTHON:2.7.2 如果操作系统没有安装python, 百度 ...

  8. Mybatis 分页插件 PageHelper

    话不多说,直接导入.部署流程. 1. 引入插件依赖包: maven工程中,pom.xml文件下,添加插件配置项: 2. 配置插件拦截器: webapp -> WEB-INF 下添加 .xml配置 ...

  9. bat 时间 的运算与提取

    比如在系统中date这个环境变量的值为 -- 星期六 年------%date:~,% 表示从左向右指针向右偏0位,然后从指针偏移到的位置开始提取4位字符,结果是2011 月------%date:~ ...

  10. vue工程化引入组件模板

    vue脚手架搭建好项目后,组件间的引用通过components import bannerComponent from './banner' export default { data(){ retu ...