//用二分查找,先找到x小于等于m的有几个数这些数有可能y大于u即为符合。
//然后找这些数中y小于u的即为排除
//相减即可
#include<stdio.h>
#include<stdlib.h>
#define N 100100
struct node {
int x,y;
}a[N],b[N];
int n;
int cmp1(const void *a,const void *b) {//对x小到大排序
if((*(struct node *)a).x==(*(struct node *)b).x)
return (*(struct node *)a).y-(*(struct node *)b).y;
return (*(struct node *)a).x-(*(struct node *)b).x;
}
int cmp2(const void *a,const void *b) {//对y从小到大排序
if((*(struct node *)a).y==(*(struct node *)b).y)
return (*(struct node *)a).x-(*(struct node *)b).x;
return (*(struct node *)a).y-(*(struct node *)b).y;
}
int seach1(int start,int end,int u) {
int mid;
if(a[start].x>u)//最小的都大于u那么肯定没有一个了
return 0;
if(a[end].x<=u)//最大的都小于u那么肯定有end+1中可能符合
return end+1;
while(end>=start) {
          mid=(start+end)/2;
 if(a[mid].x>u)
 end=mid-1;
 else 
 start=mid+1;
 }
return start;//找到个数
}
int seach2(int start,int end,int u) {
int mid;
if(b[start].y>=u)
return 0;
if(b[end].y<u)
return end+1;
while(end>=start) {
          mid=(start+end)/2;
 if(b[mid].y>=u)
 end=mid-1;
 else 
 start=mid+1;//找到个数
 }
return start;
}
int main() {
int i,j,k,m,t,count=0;
scanf("%d",&t);
while(t--) {
scanf("%d%d",&n,&m);
for(i=0;i<n;i++) {
scanf("%d%d",&a[i].x,&a[i].y);
b[i].x=a[i].x;b[i].y=a[i].y;
}
qsort(a,n,sizeof(a[0]),cmp1);
qsort(b,n,sizeof(b[0]),cmp2);
printf("Case #%d:\n",++count);
while(m--) {
scanf("%d",&k);
i=seach1(0,n-1,k);
printf("%d",i);
j=seach2(0,n-1,k);
printf("%d\n",i-j);//相减
}
}
return 0;
}

hdu 4325相关推荐

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

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

  2. 线段树——单点更新(二)

    HDU 4217 Data Structure? http://acm.hdu.edu.cn/showproblem.php?pid=4217 CZ做的一道题目,我帮忙看了看. 题意:给定N个数(1- ...

  3. 2012 Multi-University Training Contest 3

    1001  hdu 4320  http://acm.hdu.edu.cn/showproblem.php?pid=4320 题意: V写下一个A进制的任意有限小数,如果S能将其翻译成B进制的有限小数 ...

  4. hdu 4389 囧,打表

    http://acm.hdu.edu.cn/showproblem.php?pid=4389 题意 :一个数能被他各个位数之和整除则符合要求,给L,R,问区间里有多少个数符合要求. 囧,居然打表就能过 ...

  5. HDU——1106排序(istringstream的使用、STLvector练习)

    排序 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submiss ...

  6. hdu 5438 Ponds 拓扑排序

    Ponds Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/contests/contest_showproblem ...

  7. HDU 1248 寒冰王座(全然背包:入门题)

    HDU 1248 寒冰王座(全然背包:入门题) http://acm.hdu.edu.cn/showproblem.php?pid=1248 题意: 不死族的巫妖王发工资拉,死亡骑士拿到一张N元的钞票 ...

  8. hdu 1312 Red and Black 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1312 第二条深搜,题目并不难,但是做了我好久好久,由于一个细节,让我赌上了一个晚上的时间. 题目大意: ...

  9. HDU 1429 胜利大逃亡(续) (BFS+位压缩)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1429 胜利大逃亡(续) Time Limit: 4000/2000 MS (Java/Others)  ...

最新文章

  1. SPOJ 1811 LCS [后缀自动机]
  2. 机器学习4个常用超参数调试方法!
  3. vue中的浏览量_vue中前进刷新、后退缓存用户浏览数据和浏览位置的实践
  4. 计算机用户删除 cmd,用命令行删XP中的用户。除administrator外
  5. request和response对象如何解决中文乱码问题?
  6. 分布式调用时(WCF?)慎用 using(xxx){}
  7. 雷电3接口能干嘛_acasis阿卡西斯推出首款雷电3接口WIFI6网卡:内置Intel AX200
  8. 不为失败找理由,只为成功找方法
  9. python输入hello输出olleh_Python小试牛刀(经典例题)[连载中]
  10. JVM学习(1)——通过实例总结Java虚拟机的运行机制(转)
  11. Node.js目录操作
  12. java包资源_Java获取jar包以外资源的方法
  13. 国内几款通用论坛程序简介和比较
  14. 两本 PDF + 一个插件:labuladong 刷题三件套正式发布
  15. cocos2dx系列--颜色混合BlendFunc
  16. 如何查看yum 安装的软件路径(不要再忘了)
  17. 马云鹤:淡然行走,一路从容
  18. 【附源码】Java计算机毕业设计st音乐网站论文(程序+LW+部署)
  19. html5多屏互动游戏,多屏互动与游戏功能_高清技术应用-中关村在线
  20. 四川大学计算机学云,四川大学网络空间安全学院陈兴蜀:云技术安全能力及运行监管...

热门文章

  1. (02)C++ builder之WINDOWS系统服务编写与WINDOWS桌面程序调用
  2. 环信服务器发送消息ext,环信服务器发送消息
  3. Substance Designer 克苏鲁小球
  4. 【Jailhouse 文章】Bao: a modern lightweight embedded hypervisor(2020)
  5. 《思考,快与慢》思维导图
  6. FME在宗地图形拓扑中的应用
  7. 《鹰猎长空》回顾我国电影发展史的115年
  8. 使用SQL 计算一组数据的峰度、偏度 公式依据excel的KURT函数和SKEW函数 Oracle 数据库
  9. Oracle ebs pon,Oracle Apps(EBS)模块名称 SAP模块名称
  10. 判定一个数组矩阵的对称性