题目连接: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 ;
}

HDOJ 5213的更多相关文章

  1. HDOJ 1009. Fat Mouse' Trade 贪心 结构体排序

    FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  2. HDOJ 2317. Nasty Hacks 模拟水题

    Nasty Hacks Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Tota ...

  3. HDOJ 1326. Box of Bricks 纯水题

    Box of Bricks Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) To ...

  4. HDOJ 1004 Let the Balloon Rise

    Problem Description Contest time again! How excited it is to see balloons floating around. But to te ...

  5. hdoj 1385Minimum Transport Cost

    卧槽....最近刷的cf上有最短路,本来想拿这题复习一下.... 题意就是在输出最短路的情况下,经过每个节点会增加税收,另外要字典序输出,注意a到b和b到a的权值不同 然后就是处理字典序的问题,当松弛 ...

  6. HDOJ(2056)&HDOJ(1086)

    Rectangles    HDOJ(2056) http://acm.hdu.edu.cn/showproblem.php?pid=2056 题目描述:给2条线段,分别构成2个矩形,求2个矩形相交面 ...

  7. 继续node爬虫 — 百行代码自制自动AC机器人日解千题攻占HDOJ

    前言 不说话,先猛戳 Ranklist 看我排名. 这是用 node 自动刷题大概半天的 "战绩",本文就来为大家简单讲解下如何用 node 做一个 "自动AC机&quo ...

  8. 最近点对问题 POJ 3714 Raid && HDOJ 1007 Quoit Design

    题意:有n个点,问其中某一对点的距离最小是多少 分析:分治法解决问题:先按照x坐标排序,求解(left, mid)和(mid+1, right)范围的最小值,然后类似区间合并,分离mid左右的点也求最 ...

  9. BFS(八数码) POJ 1077 || HDOJ 1043 Eight

    题目传送门1 2 题意:从无序到有序移动的方案,即最后成1 2 3 4 5 6 7 8 0 分析:八数码经典问题.POJ是一次,HDOJ是多次.因为康托展开还不会,也写不了什么,HDOJ需要从最后的状 ...

随机推荐

  1. shell脚本,如何用shell打印金字塔

  2. shell脚本,怎么实现每次新开一个shell都输出一个提示语?

    [root@localhost wyb]# cat test.sh echo -e "\033[32mhello,This is wangyuebo's shell\033[0m" ...

  3. iOS 优秀博客

    中文 iOS/Mac 开发博客列表 GitHub 上排名前 100 的 Objective-C 项目简介 GitHub 上都有哪些值得关注学习的 iOS 开源项目? iOS开发系列文章(持续更新……) ...

  4. ios 注册功能研究学习

    通常,移动App的注册功能通常采用手机号码注册或者邮箱帐号注册. 不过在国内这样隐私堪忧的环境下,需要手机号来注册会流失不少用户.即便是新浪微博这样的应用,需要绑定手机号也令我不信任.除非是像淘宝.支 ...

  5. 命令行发送UDP

    https://www.cnblogs.com/Dennis-mi/articles/6866762.html: 如果往本地UDP端口發送數據,那麼可以使用以下命令:echo “hello” > ...

  6. python+ selenium 实现简历自动刷新

    本文用到的文件的下载地址 百度网盘链接: https://pan.baidu.com/s/1wIda-wUz4X_Ck72xgZ6Ddg 提取码: etaa 1 安装Python 和 selenium ...

  7. subprocess模块windows系统命令和linux系统命令

    windows系统 查看所有进程 tasklist 查找指定进程 tasklist | findstr pycharm 程序名称 PID(大写) 数量 大小 python exe 2640 conso ...

  8. PHP 微信分享(及二次分享)

    js部分: <script src="http://res.wx.qq.com/open/js/jweixin-1.2.0.js"></script> &l ...

  9. HTML5教程之本地存储SessionStorage

    SessionStorage: 将数据保存在session对象中,所谓session是指用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间会话,也就是用户浏览这个网站所花费的时间就是sess ...

  10. VBS脚本获取安全标识符SID(Security Identifiers)的方法

    一.SID简介       SID也就是安全标识符(Security Identifiers),是标识用户.组和计算机帐户的唯一的号码.在第一次创建该帐户时,将给网络上的每一个帐户发布一个唯一的 SI ...