HDU 4325 Contest 3
很明显的区间加减单点查询。但由于规模大,于是离散化。在离散化的时候,可以把要查询的点也加入离散化的数组中。
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#define lowbit(x) ((x)&(-x))
#define LL __int64
using namespace std; int tpoint[400010];
int save[100010];
int a[400020]; struct flower{
int bgn,en;
}TF[100010];
int np,al; int sum(int x){
int s=0;
for(;x;x-=lowbit(x))s+=a[x];
return s;
} void update(int x,int w){
for(;x<=np;x+=lowbit(x))
a[x]+=w;
} int find(int p){
int l=1,r=np;
while(l<=r){
int mid=(l+r)/2;
if(tpoint[mid]==p)
return mid;
else if(tpoint[mid]<p)
l=mid+1;
else if(tpoint[mid]>p)
r=mid-1;
}
} int main(){
int T,n,m,p,su,kase=0; int pos;;
scanf("%d",&T);
while(T--){
scanf("%d%d",&n,&m);
np=1;
memset(a,0,sizeof(a));
for(int i=1;i<=n;i++){
scanf("%d%d",&TF[i].bgn,&TF[i].en);
tpoint[np++]=TF[i].bgn; tpoint[np++]=TF[i].en;
}
for(int i=1;i<=m;i++){
scanf("%d",&p);
tpoint[np++]=p;
save[i]=p;
}
sort(tpoint+1,tpoint+np);
np=unique (tpoint+1, tpoint + np) - tpoint;
for(int i=1;i<=n;i++){
int f=find(TF[i].bgn);
int b=find(TF[i].en);
update(f,1);
update(b+1,-1);
}
printf("Case #%d:\n",++kase);
for(int i=1;i<=m;i++){
pos=find(save[i]);
printf("%d\n",sum(pos));
}
}
}
HDU 4325 Contest 3的更多相关文章
- (线段树 区间运算求点)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 题意:给出n个区间和m个询问,每个询问为一个x,问有多少个区间包含了x. 思路: 因为数据量比较多,所以需 ...
- hdu 4325 Flowers(区间离散化)
http://acm.hdu.edu.cn/showproblem.php?pid=4325 Flowers Time Limit: 4000/2000 MS (Java/Others) Mem ...
- HDU 5045 Contest(状压DP)
Problem Description In the ACM International Collegiate Programming Contest, each team consist of th ...
- hdu - 5045 - Contest(国家压缩dp)
意甲冠军:N个人M通过主打歌有自己的期望,每个问题发送人玩.它不能超过随机播放的次数1,追求最大业绩预期 (1 ≤ N ≤ 10,1 ≤ M ≤ 1000). 主题链接:pid=5045" ...
- [ACM] hdu 5045 Contest (减少国家Dp)
Contest Problem Description In the ACM International Collegiate Programming Contest, each team consi ...
- HDU 4325 Flowers(树状数组)
Flowers Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Sub ...
- HDU–5988-Coding Contest(最小费用最大流变形)
Coding Contest Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)To ...
- HDU 4325 Flowers 树状数组+离散化
Flowers Problem Description As is known to all, the blooming time and duration varies between differ ...
随机推荐
- CF909B Segments
CF909B Segments 题意翻译 题目描述 给你一个整数N.考虑坐标轴上所有可能的部分,在整数点上的端点,坐标在0到N之间,包括它们. 您希望在几个层中绘制这些片段,这样在每个层中这些片段就不 ...
- 【Android 应用开发】Android 平台 HTTP网速測试 案例 API 分析
作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/25996817 工信部规定的网速測试标准 : 除普通网页測速 ...
- POJ 1836 Alignment(DP max(最长上升子序列 + 最长下降子序列))
Alignment Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 14486 Accepted: 4695 Descri ...
- 防火墙设置对外开放port
今天在部署项目时,遇到项目组其它人重整了server上的iis.结果外部訪问不了所部属的项目,通过一些渠道找到了设置方法 例如以下报错的截图: 原因是"入站ICMP规则"被重整了, ...
- 2015.05.15,外语,学习笔记-《Word Power Made Easy》 01 “如何讨论人格特点”
2015.03.17,外语,读书笔记-<Word Power Made Easy> 01 “如何讨论人格特点”学习笔记 SESSIONS 1 本来这些章节都是在一两年前学习的,现在趁给友人 ...
- 【BZOJ 2453】 维护队列
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2453 [算法] 带修改的莫队算法 当块的大小为N^(2/3)时,时间复杂度为 : O ...
- C# 读取硬盘信息 ManagementClass类
一.在很多情况下,你可能都需要得到微机的硬件信息.需要加上下面的这句话: using System.Management; 获取硬件信息,需先知道硬件参数信息: Win32_Processor, // ...
- Upload图片-单张
上传图片全不怕,轻松实现图片上传, 可以实现显示缩略图喔: 后台代码: protected void btnpic_upload_Click(object sender, EventArgs e) { ...
- js 基本基础知识回顾
js中的一切的变量.函数.操作符等等都是区分大小写的. js的基本的数据类型->包含下面的5种: 1.undefined 2.Null 3.Boolean 4.Number 5.String j ...
- pip快速下载安装python 模块module
g刚开始学习python时,每次想要安装某个module,都到处找module的安装包(exe.whl等) 装setuptools,然后在cmd里用easy_install装pip,然后用pip装你要 ...