HDOJ 5213
#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的更多相关文章
- HDOJ 1009. Fat Mouse' Trade 贪心 结构体排序
FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- HDOJ 2317. Nasty Hacks 模拟水题
Nasty Hacks Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tota ...
- HDOJ 1326. Box of Bricks 纯水题
Box of Bricks Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To ...
- HDOJ 1004 Let the Balloon Rise
Problem Description Contest time again! How excited it is to see balloons floating around. But to te ...
- hdoj 1385Minimum Transport Cost
卧槽....最近刷的cf上有最短路,本来想拿这题复习一下.... 题意就是在输出最短路的情况下,经过每个节点会增加税收,另外要字典序输出,注意a到b和b到a的权值不同 然后就是处理字典序的问题,当松弛 ...
- HDOJ(2056)&HDOJ(1086)
Rectangles HDOJ(2056) http://acm.hdu.edu.cn/showproblem.php?pid=2056 题目描述:给2条线段,分别构成2个矩形,求2个矩形相交面 ...
- 继续node爬虫 — 百行代码自制自动AC机器人日解千题攻占HDOJ
前言 不说话,先猛戳 Ranklist 看我排名. 这是用 node 自动刷题大概半天的 "战绩",本文就来为大家简单讲解下如何用 node 做一个 "自动AC机&quo ...
- 最近点对问题 POJ 3714 Raid && HDOJ 1007 Quoit Design
题意:有n个点,问其中某一对点的距离最小是多少 分析:分治法解决问题:先按照x坐标排序,求解(left, mid)和(mid+1, right)范围的最小值,然后类似区间合并,分离mid左右的点也求最 ...
- BFS(八数码) POJ 1077 || HDOJ 1043 Eight
题目传送门1 2 题意:从无序到有序移动的方案,即最后成1 2 3 4 5 6 7 8 0 分析:八数码经典问题.POJ是一次,HDOJ是多次.因为康托展开还不会,也写不了什么,HDOJ需要从最后的状 ...
随机推荐
- HTML网页的浏览器标题栏显示小图标的方法
HTML网页的浏览器标题栏显示小图标的方法 就像这种效果,方法其实很简单,就是 在head头部里写: <link rel='icon' href='pic.ico ' type='image ...
- shell脚本,当用sed删除某一文件里面的内容时,并追加到同一个文件会出现问题。
shell脚本,当用sed删除某一文件里面的内容时,并追加到同一个文件会出现问题.因为初始文件和写入文件是一个文件这是失败的.需要追加到另一个文件,然后再用mv进行操作.[root@localhost ...
- (40)zabbix监控web服务器访问性能
zabbix web监控介绍 在host列可以看到web(0),在以前的版本这项是独立出来的,这个主要实现zabbix对web性能的监控,通过它可以了解web站点的可用性以及性能. 最终将各项指标绘制 ...
- 解析Java finally
以下用几个简单的例子介绍一下finally的用法: 例子1 public class Test { public static void main(String[] args) { System.ou ...
- Redis原理及集群相关知识
读书笔记 <Redis开发与运维 > Redis使用场景 作为缓存层 减少对Mysql的压力 计数功能 比如使用原子命令incr 共享Session 设置过期时间 可以限制短信接口等调用 ...
- Python_编程题集_001_词法解析
1.词法解析: 我的是名字是ths,今年18岁 语法分析后得到结果如下: 数字:18 中文:我的名字是 今年 岁 拼音:ths 符号:,. 请编写程序实现该词法分析功能 string模块解: impo ...
- Python Importlib模块与__import__详解
Importlib模块与__import__都可以通过过字符串来导入另外一个模块,但在用法上和本质上都有很大的不同. 以一个例子为证: 以下为我的工程目录结构: lib/test.py: name = ...
- awk中next以及getline用法示例
在awk中,如果调用next,那么next之后的命令就都不执行了.此行文本的处理到此结束,开始读取下一条记录并操作. 实例如下: [plain] view plain copy zoer@ubuntu ...
- win10系统中virtualbox无法安装64位系统
win10系统中virtualbox无法安装64位系统 先总结下如果想在虚拟机中安装64位的Linux系统,最好能满足这几个条件: 64位CPU 64位操作系统 64位的虚拟机软件 开启BIOS虚拟化 ...
- PYDay14:反射、面向对象基础-封装、集成、多态
1.反射 通过字符串的形式,导入模块再通过字符串的形式,去模块中寻找指定的函数并执行eg:__import__(模块) 更加字符串的形式去对象(某个模块)中操作其成员 常用方法: getattr() ...