hdu 4325
#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的更多相关文章
- HDU 4325 Flowers(树状数组+离散化)
http://acm.hdu.edu.cn/showproblem.php?pid=4325 题意:给出n个区间和m个询问,每个询问为一个x,问有多少个区间包含了x. 思路: 因为数据量比较多,所以需 ...
- (线段树 区间运算求点)Flowers -- hdu -- 4325
http://acm.hdu.edu.cn/showproblem.php?pid=4325 Flowers Time Limit: 4000/2000 MS (Java/Others) Mem ...
- hdu 4325 Flowers(区间离散化)
http://acm.hdu.edu.cn/showproblem.php?pid=4325 Flowers Time Limit: 4000/2000 MS (Java/Others) Mem ...
- HDU 4325 Flowers 树状数组+离散化
Flowers Problem Description As is known to all, the blooming time and duration varies between differ ...
- hdu 4325 树状数组+离散化
思路:这题的思路很容易想到,把所有时间点离散化,然后按时间一步一步来,当到达时间i的时候处理所有在i处的查询. 这个代码怎一个挫字了得 #include<iostream> #includ ...
- HDU 4325 Flowers(树状数组)
Flowers Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Sub ...
- HDU 4325 Contest 3
很明显的区间加减单点查询.但由于规模大,于是离散化.在离散化的时候,可以把要查询的点也加入离散化的数组中. #include <iostream> #include <algorit ...
- HDU 4325 离散化+树状数组 或者 不使用树状数组
题意:给出一些花的开放时间段,然后询问某个时间点有几朵花正在开放. 由于ti<1e9,我们需要先将时间离散化,然后将时间点抽象为一个数组中的点,显然,我们需要进行区间更新和单点查询,可以考虑线段 ...
- 2012 #3 Flowers
Flowers Time Limit:2000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Submit Stat ...
随机推荐
- magento getMessage 不显示或者显示html标签解决方案
在模板页面不显示getMessage的解决方案是,在对应的控制器里加上如下代码: $this->_initLayoutMessages('customer/session'); 如果加入后出现如 ...
- SecureCRT 迁移到新环境,导出配置文件目录 转
SecureCRT 打开SecureCRT,点击菜单栏的“选项”--“全局选项” 在打开的窗口中,选择“常规”,在右侧找到“配置文件夹”,这个就是SecureCRT的配置文件目录. 复制这个路径并且进 ...
- 自动化中Java面试题
1.面向对象的特征有哪些方面?答:面向对象的特征主要有以下几个方面:- 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面.抽象只关注对象有哪些属性和行为,并不关注这些 ...
- 程序猿工具——svn
一个项目的产生,都需要团队中的开发人员互相协作.它的简单,方便深深吸引了我. svn的使用,有2部分组成--svn服务器.svn客户端.svn服务器一般团队之间只要有一个安装就可以了. 在学习安装sv ...
- SQLServer 2012 高效分页
SQLSERVER2012 出新分页功能啦!!!近两天我在自己工作机的PC(没有并发,单一线程)上做了SqlServer 2000/ (2005/2008)/2012三个版本下的分页性能比较. 大致 ...
- vue cli 3 打包过大问题
vue cli 3 打包命令 npm run build,这种情况下的打包可以通过设置 vue.config.js里面的 productionSourceMap: false. 如果是自己设置的打包环 ...
- VUE学习,is 特性,转载来源:https://segmentfault.com/q/1010000007205176/
- 掌握Spark机器学习库-07.14-保序回归算法实现房价预测
数据集 house.csv 数据集概览 代码 package org.apache.spark.examples.examplesforml import org.apache.spark.ml.cl ...
- JFreeChart应用(生成折线图)
1.jar包,jcommon.jar和jfreechart.jar,具体用哪个版本官网去down吧: 还有另外一个jar包,gnujaxp.jar,这个引入之后编译的时候会报错,应该是xsd校验的问题 ...
- CentOS6.8 RPM包安装快速zabbix22
CentOS6.8 RPM包安装快速zabbix22 yum install -y epel-release # yum install -y httpd php php-devel mysql-se ...