/*题目大意:输入一序列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. Java多线程实现自然同步(内含演示案例)

    1.准备一个生产者类: public class Producer extends Thread{ private String name; private Market mkt; static in ...

  2. 多线程sshd爆破程序代码

    不多说了,直接上手代码,也没有啥练手的,都是很熟悉的代码,水一篇,方便作为工作的小工具吧.试了一下,配合一个好点的字典,还是可以作为个人小工具使用的. #!/usr/bin/env python # ...

  3. 【BZOJ4598】[Sdoi2016]模式字符串 树分治+hash

    [BZOJ4598][Sdoi2016]模式字符串 Description 给出n个结点的树结构T,其中每一个结点上有一个字符,这里我们所说的字符只考虑大写字母A到Z,再给出长度为m的模式串s,其中每 ...

  4. Android APK反编译详解

    这段时间在学Android应用开发,在想既然是用Java开发的应该很好反编译从而得到源代码吧,google了一下,确实很简单,以下是我的实践过程. 在此郑重声明,贴出来的目的不是为了去破解人家的软件, ...

  5. LAMP集群项目五 nfs存储的数据实时同步到backupserver

    tar fxzsersync2.5.4_64bit_binary_stable_final.tar.gz -C /usr/local/ mv GNU-Linux-x86 sersync cp sers ...

  6. 160527、项目上线后session(远程session)

    import java.io.Serializable;import java.util.HashMap;import java.util.Map;import java.util.UUID;impo ...

  7. java前后台开发之后台自动上传下载

    package downloadTest; import java.io.BufferedReader; import java.io.File; import java.io.FileInputSt ...

  8. protobuf在java应用中通过反射动态创建对象(DynamicMessage)

    ---恢复内容开始--- 最近编写一个游戏用到protobuf数据格式进行前后台传输,苦于protobuf接受客户端的数据时是需要数据类型的如xxx.parseForm(...),这样就要求服务器在接 ...

  9. 【MongoDB】从入门到精通mongdb系列学习宝典,想学mongodb小伙伴请进来

    最近一段时间在学习MongoDB,在学习过程中总共编写了四十余篇博客.从mongodb软件下载到分片集群的搭建. 从理论讲解到实例练习.现在把所有博客的内容做个简单目录,方便阅读的小伙伴查询. 一. ...

  10. Unable to locate parent package [json-default]

    Unable to load configuration. - [unknown location] Caused by: Unable to locate parent package [json- ...