南阳oj _600花儿朵朵(树状数组插线问点+坐标离散化)
花儿朵朵
- 描述
-
春天到了,花儿朵朵盛开,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花儿朵朵(树状数组插线问点+坐标离散化)相关推荐
- nyoj116 士兵杀敌(二)树状数组 插点问线
士兵杀敌(二) 时间限制:1000 ms | 内存限制:65535 KB 难度:5 描述 南将军手下有N个士兵,分别编号1到N,这些士兵的杀敌数都是已知的. 小工是南将军手下的军师,南将军经常想知 ...
- POJ2352-Stars【树状数组】
正题 题目链接: http://poj.org/problem?id=2352 题意 有n个坐标不同的星星,一个星星的等级等于在它左下的所有星星数量,求各个等级的星星数. 注:输入顺序保证Y坐标是升序 ...
- HDU5126 stars(4维偏序->cdq套cdq+树状数组)
stars 题目大意: 在一个三维空间当中,每次进行一个操作,添加一个点或者统计空间中的某一个长方体范围内的所有点 三维空间中我们用两个点即可确定一个长方体. 首先效仿平面二维数点的方法,根据容斥原理 ...
- [树状数组] Galahad
题意:求给定区间内不同数的和 经典例题https://vjudge.net/problem/HDU-3333 解题思路: 这两天有点傻,emmm 离线操作 扫一遍数组 对于重复的值树状数组维护最靠近当 ...
- 简单の暑假总结——树状数组
2.1 树状数组 树状数组,顾名思义,长得像树的数组,用于处理一些单点修改以及区间查询的问题.其时间复杂度为 O(log2n)O(\log _2n)O(log2n) .如过我们使用一些一般的数据结 ...
- Comet OJ(Contest #8)-D菜菜种菜【树状数组,指针】
前言 话说昨晚写题的时候贼NMNMNM惊险,最后22秒把程序交了上去竟然过了 正题 题目链接:https://cometoj.com/contest/58/problem/D?problem_id=2 ...
- 杭电OJ 敌兵布阵 树状数组
是一道简单的树状数组的题,,是一道简单题.....题目: C国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了.A国在海岸线沿直线布置了N个工兵营地,Der ...
- power oj 2840: 伯陵防线 思维+树状数组
2840: 伯陵防线 Time Limit: 1000 MS Memory Limit: 262144 KB Total Submit: 9 Accepted: -4 Page View: 81 Su ...
- CDQ分治 + 树状数组 ---- C. Goodbye Souvenir(三维偏序+思维)
题目链接 题目大意: 给定长度为nnn的数组, 定义数字XXX在[l,r][l,r][l,r]内的值为数字XXX在[l,r][l,r][l,r]内最后一次出现位置的下标减去第一次出现位置的下标 给定m ...
- 点分治问题 ----------- 2019-2020 ICPC Asia Hong Kong Regional Contest C.Constructing Ranches[点分治+树状数组]
题目链接 题目大意: 给你一个nnn个顶点的树,树上的顶点都有一个自己的权值,现在问你有多少对(u,v)(u,v)(u,v),它们路径上点的权值集合可以组成一个多边形? 解题思路: 1.对于树上路径问 ...
最新文章
- css多行省略号兼容ie,css超出2行部分省略号……,兼容ie
- Docker compose多容器管理
- Java常用的设计模式总结
- 关于 HANA CE Function
- java byte转bigdecimal_Java BigDecimal byteValueExact()用法及代码示例
- java classpath bat_tomcat启动批处理——setclasspath.bat | 学步园
- ES:记录curator+nfs进行索引备份、创建快照的一次实践
- 用c++写的一个词典工具
- linux命令别名永久生效
- [目标检测系列]ATSS: Bridging the Gap Between Anchor-based and Anchor-free Detection via ATSS(CVPR2020)
- Hibernate 二级缓存的作用
- python爬取搜狗微信的推文
- mac下webrtc的编译-坑记录 非常重要
- Mac自定义触控栏 Touch Bar的显示教程
- 分类算法SVM(支持向量机)
- 【洛谷】P3386 【模板】二分图最大匹配
- 1分钟7张图:后视镜判断车距,非常实用
- python程序设计丁亚涛版_Scribus(出版设计软件)中文免费版
- 几款不错的Android开源APP效果展示(附源码地址)
- 重温乔布斯在斯坦福大学的经典演讲------Stay Hungry, Stay Foolish
热门文章
- 我有一个梦,叫“禾下乘凉梦“!
- windows如何查找自己的office秘钥?
- VAD检测原理及其过程
- 飞机大战的常见Bug
- mysql table already_MySQL优化表时提示 Table is already up to date的解决方法
- Melancholy 题解
- AD那些事儿——4层板画法
- 狗年拜年php源码,2018新年拜年贺词【2018狗年拜年贺词】
- 修改ftp服务器地址,ftp服务器ip地址修改
- C++程序设计技巧 NVI(Non-Virtual Interface )