/*题目大意:输入一序列n个数字,然后输入m个询问,每个询问包含左边区间和右边区间,还有a和b,问你这个区间内有几个数大于等于a且小于等于b
做法:树状数组,先求出这个区间内有几个数小于a,然后求这个区间内有几个数小于等于b,拿后者减去前者就是答案了*/
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
const int maxn=;
int c[maxn],ansl[maxn],ansr[maxn];
struct pp
{
int num;
int id;
}p[maxn];
struct p2p
{
int hi;
int id;
int l,r;
int low;
}p1[maxn];
int cmp(pp a,pp b)
{
return a.num<b.num;
}
int cmp1(p2p a,p2p b)
{
return a.low<b.low;
}
int cmp2(p2p a,p2p b)
{
return a.hi<b.hi;
}
int n,m;
int lowbit(int x)
{
return x&(-x);
}
void add(int x,int d)
{
while(x<=n)
{
c[x]+=d;
x=x+lowbit(x);
}
}
int sum(int x)
{
int ans=;
while(x>)
{
ans+=c[x];
x=x-lowbit(x);
}
return ans;
}
int main()
{
int i,j,k;
int t;
int cas=;
scanf("%d",&t);
while(t--)
{
memset(c,,sizeof(c));
memset(ansl,,sizeof(ansl));
scanf("%d%d",&n,&m);
for(i=;i<=n;i++)
{
scanf("%d",&p[i].num);
p[i].id=i;
}
for(i=;i<=m;i++)
{
scanf("%d%d%d%d",&p1[i].l,&p1[i].r,&p1[i].low,&p1[i].hi);
p1[i].id=i;
}
sort(p+,p+n+,cmp);
sort(p1+,p1+m+,cmp1);
i=;
j=;
while(j<=m)
{
while(i<=n)
{
if(p[i].num>=p1[j].low)
break;
add(p[i].id,);
i++;
}
while(j<=m)
{
if(i<=n&&p[i].num<p1[j].low)
break;
ansl[p1[j].id]=sum(p1[j].r)-sum(p1[j].l-);
j++;
}
}
i=;
j=;
memset(c,,sizeof(c));
memset(ansr,,sizeof(ansr));
sort(p1+,p1+m+,cmp2);
while(j<=m)
{
while(i<=n)
{
if(p[i].num>p1[j].hi)
break;
add(p[i].id,);
i++;
}
while(j<=m)
{
if(i<=n&&p[i].num<=p1[j].hi)
break;
ansr[p1[j].id]=sum(p1[j].r)-sum(p1[j].l-);
j++;
}
}
printf("Case #%d:\n",++cas);
for(i=;i<=m;i++)
if(ansr[i]-ansl[i]>)
printf("%d\n",ansr[i]-ansl[i]);
else printf("0\n");
}
return ;
}

SDUT oj 2610的更多相关文章

  1. SDUT OJ 2607

    /*http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2607*/ 题目大意:给出一个字符串,求出里 ...

  2. SDUT OJ 1221 亲和数 (找出某个数n所有的因子数,只需要暴力:2->sqrt(n) 即可 )

    亲和数 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 如果a的因子和等于b,b的因子和等于a,且a≠b,则称a,b为亲和数对. ...

  3. SDUT OJ 图练习-BFS-从起点到目标点的最短步数 (vector二维数组模拟邻接表+bfs , *【模板】 )

    图练习-BFS-从起点到目标点的最短步数 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 在古老的魔兽传说中,有两个军团,一个叫天 ...

  4. 【离散数学】 SDUT OJ 传递闭包 && memset 使用注意事项

    传递闭包 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description 已知有n头牛,m次战斗关系, ...

  5. SDUT OJ 2783 小P寻宝记

    #include<iostream> #include<memory.h> #define N 10020 using namespace std; int dp[N],pi[ ...

  6. SDUT oj 3005 打怪升级(内存搜索)

    当比赛一直纠缠骑2如何做一个非常大的数量,数组不开啊...后来他们发现自己很傻啊,该数不超过最大10什么,这个上限就是力量100什么.. .. 其它的就是记忆化搜索啊,还有就是加一点力量的瓶子当时就要 ...

  7. SDUT OJ 2463 学校password你必须学会科学计划

    #include<iostream> #include<string.h> #include<stdio.h> #define N 10010 #define M ...

  8. SDUT OJ 效率至上(线段树)

    效率至上 Time Limit: 5000 ms Memory Limit: 65536 KiB Submit Statistic Problem Description 题意很简单,给出一个数目为n ...

  9. SDUT OJ 数组计算机(线段树)

    学长推荐了这个博客详细的介绍了线段树的建立.查找.更新: 数组计算机 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Prob ...

随机推荐

  1. 收集各种在线HTTP网站载入速度(响应时间)站长测试(检测)工具

    收集各种在线HTTP网站载入速度(响应时间)站长测试(检测)工具 名称\详情 简单功能描述 推荐星级 演示/示例 监控宝 从中国多地对你提交的URL进行载入速度(响应时间)测试 ★★★★★   17C ...

  2. docker的本地仓库换成阿里云的镜像仓库

    1,阿里云上注册账号,我的已经注册好了,仓库名称:registry.cn-hangzhou.aliyuncs.com/woccb2/chen 2,本地安装docker: yum -y install ...

  3. 合并图片、EUI顺序、CacheAsBitmap对drawcall影响的测试

    一 什么是DrawCall Draw Call 理解和优化: http://blog.csdn.net/sakyaer/article/details/44459881 draw call是openG ...

  4. Struts入门(三)深入Struts用法讲解

    访问Servlet API Action搜索顺序 动态方法调用 指定多个配置文件 默认Action Struts 后缀 接收参数 处理结果类型 1.访问Servlet API 首先我们了解什么是Ser ...

  5. 后端程序员如何玩转AJAX

    1.原生的Ajax入门 (感觉很是繁琐,所以一般我们都是用简单的方式) 创建一个核心对象 XMLHttpRequest var xmlhttp; if (window.XMLHttpRequest) ...

  6. vue ios自带拼音全键输入法模糊查询兼容性问题

    ios的自带拼音全键会在输入框中输入拼音,直接在输入框用@keyup="autoInput()"的话,在监听输入事件的时候安卓显示正常, ios就会出现输入显示数据不灵敏 解决办法 ...

  7. 5501环路运输【(环结构)线性DP】【队列优化】

    5501 环路运输 0x50「动态规划」例题 描述 在一条环形公路旁均匀地分布着N座仓库,编号为1~N,编号为 i 的仓库与编号为 j 的仓库之间的距离定义为 dist(i,j)=min⁡(|i-j| ...

  8. 为ElasticSearch添加HTTP基本认证 https://github.com/Asquera/elasticsearch-http-basic/releases

    ES的HTTP连接没有提供任何的权限控制措施,一旦部署在公共网络就容易有数据泄露的风险,尤其是加上类似elasticsearch-head这样友好的前端界面,简直让你的数据瞬间裸奔在黑客的眼皮底下.项 ...

  9. python的@classmethod和@staticmethod

    本文是对StackOverflow上的一篇高赞回答的不完全翻译,原文链接:meaning-of-classmethod-and-staticmethod-for-beginner Python面向对象 ...

  10. datasnap 授权验证DSAuthenticationManager方法应用

    服务端 1.服务端只需要增加DSAuthenticationManager1并且把dshttpservice的AuthenticationManager属性设置为DSAuthenticationMan ...