题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=5213
BC 上的题,题解很清楚,会莫对的应该不难,
对于一个询问,我们拆成四个询问,开始拆成求区间矩形的样子,我想多了。
然后就是模板的莫队了。
一个变量打错,一直DEBUG  
 #include<stdio.h>
#include<algorithm>
#include<string.h>
#include<math.h>
#include<string>
#include<iostream>
using namespace std; #define N 600055
typedef long long LL;
int a[N],pos[N],block;
int n,m,k,idx;
int ans1[N],tmp[N]; struct node
{
int l,r,id;
int p;
}q[N]; //BZOJ 4129
int cmp(node a,node b)
{
if (pos[a.l]==pos[b.l]) return a.r<b.r;
return pos[a.l]<pos[b.l];
} void solve()
{
int l=,r=;
int ans=;
for (int i=;i<=m;i++)
{
while (l>q[i].l)
{
l--;
if (k-a[l]>) ans+=tmp[k-a[l]];
tmp[a[l]]++;
}
while (r<q[i].r)
{
r++;
if (k-a[r]>) ans+=tmp[k-a[r]];
tmp[a[r]]++;
}
while (l<q[i].l)
{
if (k-a[l]>) ans-=tmp[k-a[l]];
tmp[a[l]]--;
l++;
}
while (r>q[i].r)
{
if (k-a[r]>) ans-=tmp[k-a[r]];
tmp[a[r]]--;
r--;
}
ans1[q[i].id]+=q[i].p*ans;
}
} int main()
{
while (scanf("%d%d",&n,&k)!=EOF)
{
memset(ans1,,sizeof(ans1));
for (int i=;i<=n;i++)
scanf("%d",&a[i]);
memset(tmp,,sizeof(tmp)); block=sqrt(n);
for (int i=;i<=n;i++)
pos[i]=(i-)/block+;
idx=;
scanf("%d",&m); for (int i=;i<=m;i++)
{
int l,r,l2,r2;
scanf("%d%d%d%d",&l,&r,&l2,&r2);
q[++idx].l=l;q[idx].r=r2;q[idx].id=i;q[idx].p=;
if (r+<=l2-)
{
q[++idx].l=r+,q[idx].r=l2-,q[idx].id=i,q[idx].p=;
}
q[++idx].l=l;q[idx].r=l2-;q[idx].id=i,q[idx].p=-;
q[++idx].l=r+;q[idx].r=r2;q[idx].id=i,q[idx].p=-;
}
swap(idx,m);
sort(q+,q+m+,cmp);
//for (int i=1;i<=m;i++) cout<<q[i].id<<" ";
//cout<<endl;
// cout<<m<<" "<<idx<<endl;
solve();
for (int i=;i<=idx;i++)
printf("%d\n",ans1[i]);
}
return ;
}

最新文章

  1. 服务器504——一般情况下是由nginx默认的fastcgi进程响应慢引起的
  2. 浅谈java抽象类和接口
  3. Android-Universal-Image-Loader的缓存处理机制
  4. mfc学生成绩录入与查询
  5. SQL在指定列后添加新的列
  6. 3.VS2010C++相关文件说明
  7. AIDL简单使用
  8. GTK+中的构件II(Widgets)
  9. C#处理四舍五入的问题
  10. [HNOI2012] 矿场搭建
  11. linux svn启动和关闭(转)
  12. T-SQL技术收集——删除重复数据
  13. do-while、while、for做循环算5的阶乘
  14. oracle 存储过程(1)
  15. VisualVM远程连接Tomcat
  16. day75 form 组件(对form表单进行输入值校验的一种方式)
  17. 如何使用ABBYY FineReader 12将JPEG文件转换成Word文档
  18. Page13:跟踪问题、最优控制[Linear System Theory]
  19. Tcp/Ip 三次握手与四次挥手
  20. python解释器介绍以及Pycharm的破解

热门文章

  1. iptables(1)工具详解
  2. zabbix:告警、恢复消息次数
  3. numpy模块(对矩阵的处理,ndarray对象)
  4. Linux等待队列与唤醒
  5. H.264 与 MPEG-4 压缩格式的变革
  6. ASP.NET MVC中如何在当前页面上弹出另外一个页面
  7. Centos7 安装配置优化mysql(mariadb分支)
  8. RAISERROR 的用法(转)
  9. rabbitmq php扩展amqp安装
  10. ICMP TYPE CODE