#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. glassfish应用服务器安装配置

    1.Glassfish4.0下载地址:https://glassfish.java.net/download.html#gfoseTab 2.将下载的glassfish-4.0.zip传输到服务器/h ...

  2. Android使用Gson(相当于C#的Newtonsoft.Json)非常好用

    C#转Java有一段时间了,之前做ASP.NET WebAPI微软竟将第三方类库Newtonsoft.Json作为VS新建MVC和WebAPI项目默认必备的Json工具Nuget包,可想而知这个包有多 ...

  3. HTML5 File API的应用

    HTML5 File API简介 HTML5File API协议族 Directories and System   文件系统和目录读取 FileWriter   写入文件 FileReader   ...

  4. android v7包的关联

    最近在使用到侧滑栏的时候,使用到了v7包下的actionbar,结果折腾了好久才折腾好,其实很简单的,操作步骤如下: 1. 在eclipse中导入v7包的工程 2. 在自己的工程中打开properti ...

  5. Oracle中的执行计划

    使用autotrace sqlplus系统参数:SQL> set autotrace trace onSQL> select * from dual;DUM---XExecution Pl ...

  6. 小b和灯泡

    2489 小b和灯泡 2 秒 262,144 KB 10 分 2 级题   小b有n个关闭的灯泡,编号为1...n. 小b会进行n轮操作,第i轮她会将编号为i的倍数的灯泡的开关状态取反,即开变成关,关 ...

  7. 字符集匹配:\s 匹配一个空格,一边后面加量词表示多个空格,\s*表示0个以上空格,\s+表示1个以上空格,\s相当于[\f\r\n\t ]5种空白字符。

    字符集匹配:\s 匹配一个空格,一边后面加量词表示多个空格,\s*表示0个以上空格,\s+表示1个以上空格,\s相当于[\f\r\n\t ]5种空白字符.

  8. react-native Socket Event 在控制台的输出

    在XCode中运行react-native 的时候,避免不了的要查看日志信息 ,但是react-native中的Socket的日志简直是太多了,往往是刚看到自己想要看到的信息的时候,瞬间就被最新的日志 ...

  9. egg.js上传文件到本地

    'use strict'; const Service = require('egg').Service; const fs = require('fs'); const path = require ...

  10. CSU 2018年12月月赛 D 2216 : Words Transformation

    Description There are n words, you have to turn them into plural form. If a singular noun ends with ...