题意:

给你n个数,然后给你q个区间,然后问你这n个数有多少个在这个区间上;

思路:

树状数组搞搞,但是注意到数的范围很大,所以先离散化一下。

初始化初始化!!!卧槽,wa的我好郁闷。。。

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N=2e5+10; int arr[N];
int c[N*4];
int n,Q; void add(int i)
{
while(i<=n+2*Q)
{
c[i]+=1;
i+=i&(-i);
}
} int Sum(int i)
{
int ans=0;
while(i>0)
{
ans+=c[i];
i-=i&(-i);
}
return ans;
} vector<int>xs;
int main()
{
int T,cas=1;
scanf("%d",&T);
while(T--)
{
scanf("%d%d",&n,&Q);
xs.clear();
for(int i=1;i<=n;i++)
{
scanf("%d",&arr[i]);
xs.push_back(arr[i]);
}
for(int i=1;i<=2*Q;i+=2)
{
scanf("%d%d",&arr[n+i],&arr[n+i+1]);
xs.push_back(arr[n+i]);
xs.push_back(arr[n+i+1]);
} sort(xs.begin(),xs.end()); vector<int>::iterator e=unique(xs.begin(),xs.end());
for(int i=1;i<=n+2*Q;i++)
arr[i]=lower_bound(xs.begin(),e,arr[i])-xs.begin()+1; memset(c,0,sizeof(c));
for(int i=1;i<=n;i++)
add(arr[i]);
printf("Case %d:\n",cas++);
for(int i=1;i<=2*Q;i+=2)
printf("%d\n",Sum(arr[n+i+1])-Sum(arr[n+i]-1));
}
return 0;
}
/* 10
5 3
0 0 0 0 0
1 2
1 3
1 2 */

最新文章

  1. js 事件大全
  2. IOS- 应用程序生命周期(前后台切换,应用的各种状态)详解
  3. JS 时间格式化
  4. struts2整合CKEditor和CKFinder实现上传
  5. 2016年6月28日 星期二 --出埃及记 Exodus 14:25
  6. transition:all 0.5s linear;进度条动画效果 制作原理
  7. careercup-数组和字符串1.7
  8. JavaScript上下文和闭包
  9. Cookie[1]
  10. JS进阶书籍
  11. Brackets - 强大免费的开源跨平台Web前端开发工具IDE (HTML/CSS/Javascript代码编辑器)
  12. (转)MyBatis在插入的数据有空值时,可能为空的字段都要设置jdbcType
  13. 爬虫新手学习2-爬虫进阶(urllib和urllib2 的区别、url转码、爬虫GET提交实例、批量爬取贴吧数据、fidder软件安装、有道翻译POST实例、豆瓣ajax数据获取)
  14. C#多线程编程(7)--锁
  15. c# 事件的订阅发布Demo
  16. Linux 学习 (三) 文件搜索命令
  17. mysql数据库的查询,添加,删除,还原,备份
  18. ubuntu 安装 firefox 的 jre plugin
  19. 洛谷P2542 [AHOI2005]航线规划(LCT,双连通分量,并查集)
  20. distinct 用法

热门文章

  1. JNI在C和C++中的调用区别
  2. 图像处理之opencv---常用函数
  3. Javascript MVC 学习笔记(二) 控制器和状态
  4. mysql 中的增改查删(CRUD)
  5. P1355 神秘大三角
  6. OBS桌面视频直播软件/推流工具使用指南
  7. EasyIPCamera通过RTSP协议接入海康、大华等摄像机,摒弃私有SDK接入弊端
  8. 5 Ways to Make Your Hive Queries Run Faster
  9. 一款很好的日程安排插件fullcalendar 非常适合OA等系统
  10. UVA11149 Power of Matrix —— 矩阵倍增、矩阵快速幂