花儿朵朵

时间限制:1000 ms  |  内存限制:65535 KB
难度:5
描述
春天到了,花儿朵朵盛开,hrdv是一座大花园的主人,在他的花园里种着许多种鲜花,每当这个时候,就会有一大群游客来他的花园欣赏漂亮的花朵,游客们总是会询问,某个时间有多少种花儿同时在盛开着?hrdv虽然知道每种花儿的开花时间段,但是他不能很快的答出游客的问题,你能编写一个程序帮助他吗?

输入
第一行有个整数t,表示有t组测试数据,每组测试数据第一行为两个整数n,m(0<n<100000,0<m<100000);随后有n行,每一行有两个整数x,y(0<x<y<1000000000),表示这一种花的盛开时间是从x到y;随后有m行,每行有一个整数,代表游客询问的时间。
输出
对于每次游客的询问,输出一个整数在单独的一行,表示这个时间盛开的花有多少种。
样例输入
2
1 1
5 10
4
2 3
1 4
4 8
1
4
6
样例输出
0
1
2
1
#include<stdio.h>
#include<algorithm>
#include<string.h>
using namespace std;
int p[200010];
int v[300010],k;
struct Node
{int x;int id;
}node[300010];
int comp(Node n1,Node n2)
{return n1.x<n2.x;
}
int lowbit(int x)
{return x&(-x);
}
void add(int a,int x)
{while(a>=1){p[a]+=x;a-=lowbit(a);}
}
int sum(int x)
{int res=0;while(x<=k){res+=p[x];x+=lowbit(x);}return res;
}
int main()
{int t,n,m,i,a,b,x;scanf("%d",&t);while(t--){k=1;memset(p,0,sizeof(p));scanf("%d%d",&n,&m);for(i=1;i<=2*n+m;i++){scanf("%d",&x);node[i].x=x;node[i].id=i;}sort(node+1,node+1+2*n+m,comp);v[node[1].id]=k;for(i=2;i<=2*n+m;i++){if(node[i].x==node[i-1].x){v[node[i].id]=k;}else{v[node[i].id]=++k;}}for(i=1;i<=2*n;i+=2){add(v[i+1],1);add(v[i]-1,-1);}for(i=2*n+1;i<=2*n+m;i++){int res=sum(v[i]);printf("%d\n",res);}}return 0;
}

法二:

#include<stdio.h>
#include<algorithm>
#include<string.h>
using namespace std;
int p[200010];
int v[300010],k;
struct Node
{int x;int id;
}node[300010];
int comp(Node n1,Node n2)
{return n1.x<n2.x;
}int main()
{int t,n,m,i,a,b,x;scanf("%d",&t);while(t--){k=1;memset(p,0,sizeof(p));scanf("%d%d",&n,&m);for(i=1;i<=2*n+m;i++){scanf("%d",&x);node[i].x=x;node[i].id=i;}sort(node+1,node+1+2*n+m,comp);v[node[1].id]=k;for(i=2;i<=2*n+m;i++){if(node[i].x==node[i-1].x){v[node[i].id]=k;}else{v[node[i].id]=++k;}}for(i=1;i<=2*n;i+=2){p[v[i]]+=1;p[v[i+1]+1]-=1;}for(i=1;i<=k;i++){p[i]+=p[i-1];}for(i=2*n+1;i<=2*n+m;i++){printf("%d\n",p[v[i]]);}}return 0;
}

南阳oj _600花儿朵朵(树状数组插线问点+坐标离散化)相关推荐

  1. nyoj116 士兵杀敌(二)树状数组 插点问线

    士兵杀敌(二) 时间限制:1000 ms  |  内存限制:65535 KB 难度:5 描述 南将军手下有N个士兵,分别编号1到N,这些士兵的杀敌数都是已知的. 小工是南将军手下的军师,南将军经常想知 ...

  2. POJ2352-Stars【树状数组】

    正题 题目链接: http://poj.org/problem?id=2352 题意 有n个坐标不同的星星,一个星星的等级等于在它左下的所有星星数量,求各个等级的星星数. 注:输入顺序保证Y坐标是升序 ...

  3. HDU5126 stars(4维偏序->cdq套cdq+树状数组)

    stars 题目大意: 在一个三维空间当中,每次进行一个操作,添加一个点或者统计空间中的某一个长方体范围内的所有点 三维空间中我们用两个点即可确定一个长方体. 首先效仿平面二维数点的方法,根据容斥原理 ...

  4. [树状数组] Galahad

    题意:求给定区间内不同数的和 经典例题https://vjudge.net/problem/HDU-3333 解题思路: 这两天有点傻,emmm 离线操作 扫一遍数组 对于重复的值树状数组维护最靠近当 ...

  5. 简单の暑假总结——树状数组

    2.1 树状数组 树状数组,顾名思义,长得像树的数组,用于处理一些单点修改以及区间查询的问题.其时间复杂度为 O(log⁡2n)O(\log _2n)O(log2​n) .如过我们使用一些一般的数据结 ...

  6. Comet OJ(Contest #8)-D菜菜种菜【树状数组,指针】

    前言 话说昨晚写题的时候贼NMNMNM惊险,最后22秒把程序交了上去竟然过了 正题 题目链接:https://cometoj.com/contest/58/problem/D?problem_id=2 ...

  7. 杭电OJ 敌兵布阵 树状数组

    是一道简单的树状数组的题,,是一道简单题.....题目: C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A国在海岸线沿直线布置了N个工兵营地,Der ...

  8. power oj 2840: 伯陵防线 思维+树状数组

    2840: 伯陵防线 Time Limit: 1000 MS Memory Limit: 262144 KB Total Submit: 9 Accepted: -4 Page View: 81 Su ...

  9. CDQ分治 + 树状数组 ---- C. Goodbye Souvenir(三维偏序+思维)

    题目链接 题目大意: 给定长度为nnn的数组, 定义数字XXX在[l,r][l,r][l,r]内的值为数字XXX在[l,r][l,r][l,r]内最后一次出现位置的下标减去第一次出现位置的下标 给定m ...

  10. 点分治问题 ----------- 2019-2020 ICPC Asia Hong Kong Regional Contest C.Constructing Ranches[点分治+树状数组]

    题目链接 题目大意: 给你一个nnn个顶点的树,树上的顶点都有一个自己的权值,现在问你有多少对(u,v)(u,v)(u,v),它们路径上点的权值集合可以组成一个多边形? 解题思路: 1.对于树上路径问 ...

最新文章

  1. css多行省略号兼容ie,css超出2行部分省略号……,兼容ie
  2. Docker compose多容器管理
  3. Java常用的设计模式总结
  4. 关于 HANA CE Function
  5. java byte转bigdecimal_Java BigDecimal byteValueExact()用法及代码示例
  6. java classpath bat_tomcat启动批处理——setclasspath.bat | 学步园
  7. ES:记录curator+nfs进行索引备份、创建快照的一次实践
  8. 用c++写的一个词典工具
  9. linux命令别名永久生效
  10. [目标检测系列]ATSS: Bridging the Gap Between Anchor-based and Anchor-free Detection via ATSS(CVPR2020)
  11. Hibernate 二级缓存的作用
  12. python爬取搜狗微信的推文
  13. mac下webrtc的编译-坑记录 非常重要
  14. Mac自定义触控栏 Touch Bar的显示教程
  15. 分类算法SVM(支持向量机)
  16. 【洛谷】P3386 【模板】二分图最大匹配
  17. 1分钟7张图:后视镜判断车距,非常实用
  18. python程序设计丁亚涛版_Scribus(出版设计软件)中文免费版
  19. 几款不错的Android开源APP效果展示(附源码地址)
  20. 重温乔布斯在斯坦福大学的经典演讲------Stay Hungry, Stay Foolish

热门文章

  1. 我有一个梦,叫“禾下乘凉梦“!
  2. windows如何查找自己的office秘钥?
  3. VAD检测原理及其过程
  4. 飞机大战的常见Bug
  5. mysql table already_MySQL优化表时提示 Table is already up to date的解决方法
  6. Melancholy 题解
  7. AD那些事儿——4层板画法
  8. 狗年拜年php源码,2018新年拜年贺词【2018狗年拜年贺词】
  9. 修改ftp服务器地址,ftp服务器ip地址修改
  10. C++程序设计技巧 NVI(Non-Virtual Interface )