【莫队算法】[HDU5213]Lucky

【问题解析】Matlab Function的易错点(Variable Size) Matlab Function的易错点 阅读详情

题目

分析:重点是把每个两个区间的询问拆分成四个单个区间的询问。
ans[l][r][u][v]=ans[l][v]-ans[l][u-1]-ans[r+1][v]+ans[r+1][u-1];

#include<cstdio>
#include<map>
#include<cmath>
#include<cstring>
#include<cstdlib>
#include<algorithm>
using namespace std;
#define MAXN 30000
int n,k,m,a[MAXN+10],cm,cnt[MAXN+10],block[MAXN+10],ans[MAXN+10];
struct node{
    int l,r,i,sign;
    bool operator<(const node &x)const{
        if(block[l]==block[x.l])
            return r<x.r;
        return block[l]<block[x.l];
    }
}qi[MAXN*4+10];
struct node2{
    int l,r,u,v,pos,ans;
}qd[MAXN+10];
void Read(int &x){
    char c;
    while(c=getchar(),c!=EOF)
        if(c>='0'&&c<='9'){
            x=c-'0';
            while(c=getchar(),c>='0'&&c<='9')
                x=x*10+c-'0';
            ungetc(c,stdin);
            return;
        }
    exit(0);
}
void init(){
    Read(n),Read(k);
    int i,t=sqrt(n+0.5),l,r,u,v;
    for(i=1;i<=n;i++){
        block[i]=(i+t-1)/t;
        Read(a[i]);
    }
    Read(m);
    for(i=1;i<=m;i++){
        Read(l),Read(r),Read(u),Read(v);
        qi[++cm].l=l;
        qi[cm].r=v;
        qi[cm].i=i,qi[cm].sign=1;
        qi[++cm].l=l;
        qi[cm].r=u-1;
        qi[cm].i=i,qi[cm].sign=-1;
        qi[++cm].l=r+1;
        qi[cm].r=v;
        qi[cm].i=i,qi[cm].sign=-1;
        qi[++cm].l=r+1;
        qi[cm].r=u-1;
        qi[cm].i=i,qi[cm].sign=1;
    }
    sort(qi+1,qi+cm+1);
}
void solve(){
    int i,l=1,r=0,nans=0;
    node *p;
    for(i=1;i<=cm;i++){
        p=&qi[i];
        if(r<p->r)
            while(r<p->r){
                nans+=cnt[k-a[++r]];
                cnt[a[r]]++;
            }
        else
            while(r>p->r){
                cnt[a[r]]--;
                nans-=cnt[k-a[r--]];
            }
        if(l>p->l)
            while(l>p->l){
                nans+=cnt[k-a[--l]];
                cnt[a[l]]++;
            }
        else
            while(l<p->l){
                cnt[a[l]]--;
                nans-=cnt[k-a[l++]];
            }
        ans[p->i]+=p->sign*nans;
    }
}
void print(){
    int i;
    for(i=1;i<=m;i++)
        printf("%d\n",ans[i]);
}
int main()
{
    while(1){
        cm=0;
        memset(cnt,0,sizeof cnt);
        memset(ans,0,sizeof ans);
        init();
        solve();
        print();
    }
}
老版QQ原生表情gif动态 这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。 立即下载

相关推荐

IEEE GRSL投稿全流程避坑指南:从Latex模板到校样缴费,新手必看的7个关键节点

本文详细解析了IEEE GRSL投稿全流程中的7个关键节点,从LaTeX模板选择到校样缴费,帮助新手避免常见陷阱。特别针对图像格式转换、审稿意见回复、版权转移等环节提供实用技巧,确保投稿过程高效顺利。

weixin_28720573的博客 570

HDU - 5213 Lucky 莫队+容斥

题目链接:https://cn.vjudge.net/problem/HDU-5213 题意:从两个区间中各拿一个数,和为k的选法 题解:容斥一下即为:sum[l, v] - sum[l, u-1] -sum[r+1, v] + sum[r+1, u-1] sum[l, r] 表示从[l,r]中选择两个数和为k的选法,剩下的就莫队分块解决一下就可以了 #inclu...

还我笑颜 233

Nginx/OpenResty目录穿越漏洞复现

Nginx/OpenResty目录穿越漏洞复现 漏洞背景: 2020年03月18日, 360CERT监测发现 openwall oss-security 邮件组披露了两枚漏洞。在特定配置下 nginx/openresty 存在 内存泄漏漏洞/目录穿越漏洞。 Nginx 是异步框架的网页服务器,也可以用作反向代理、负载平衡器和HTTP缓存。 OpenResty是一个基于nginx的Web平台,它对nginx增加LuaJIT引擎使其运行Lua脚本。 影响版本: nginx <= v1.17

小小猪的博客 1万+

HDU - 5213 Lucky (莫队+容斥原理)

题链:https://vjudge.net/problem/HDU-5213 题意:求[L,R]和[U,V]区间中,有多少对 ax+ay==k ?其中 L<=x<=R,U<=y<=V。题目保证 L<=R<U<=V. 思路:容斥原理,设sum(l,r)代表有[L,R]中有sum(l,r)对ax+ay==k,l<=x<=r.那么,答案为sum(l,v)-sum(l,u-1)-sum(r+1,v)+sum(r+1,u-1)。每个询问拆成4个询问,莫队一下即

birdmanqin的博客 259

基于卷积神经网络的人脸识别算法

摘要:近年来,随着科学技术的不断发展,人脸识别技术日渐成熟,使得人脸识别技术的使用率不断增大。例如:门禁、ATM机、公安系统以及新兴起的人机交互等领域,都应用到了人脸识别系统。在人脸识别研究领域中,深度学习扮演着重要的角色。由于深度学习的人脸识别技术凭借其识别率高、识别快等特点,逐渐成为整个领域的主流技术。在众多深度学习算法中,以卷积神经网络为代表的人脸识别系统得到了广泛应用,主要研究内容如下:首先,通过对经典损失函数进行研究,对比每种损失函数的特点,然后根据A-Softmax函数进行改进,借助Margin

yyq2263511327的博客 1万+

Ubuntu AX200 iwlwifi-cc-46.3cfab8da.0.tgz无法下载的解决办法

AX200 iwlwifi-cc-46.3cfab8da.0.tgz 无法下载网页出问题使用 其他方法来进行但是前提还是有网络。

chen20170325的博客 1039

HDU-5213,洛谷-P1494 (莫队算法)

题目链接: 小Z的袜子 思路 莫队算法用于解决离线处理问题,即先把所有询问记录一遍,对询问的进行排序操作后,最终一起输出答案。对于区间询问,其实我们就是设置了两个指针L,R,我们其实可以在O(1)的时间内完成从【L,R】的询问到【L+1,R】或者是【L,R+1】的询问,因此排序的原因就是使得指针跳来跳去的次数能够减少一些。 #include &amp;lt;bits/stdc++.h&amp;gt; usin...

“”云腾致雨“”的博客 225

神经形态芯片:IBM TrueNorth技术详解以及应用案例

2018年的一项演示中,机器人使用TrueNorth处理了复杂的路径规划,功耗仅为传统系统的1/10。它通过模仿人脑的结构,解决了传统芯片在功耗和并行性上的痛点,并在图像识别、物联网和机器人等领域展现了强大潜力。:不同于传统芯片的时钟驱动,TrueNorth是事件驱动的。例如,工厂中的振动传感器使用TrueNorth检测设备故障的早期迹象,实现了更高效的维护策略,避免了停机时间。:在医疗领域,TrueNorth可以用于可穿戴设备,比如一个智能助听器,它能过滤噪音并增强特定声音,功耗低到可以用纽扣电池供电。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 2477

hdu5213(莫队算法+容斥定理)

借鉴了一位大佬的博客:https://www.cnblogs.com/HDUjackyan/p/8996172.html 题目链接:http://acm.hdu.edu.cn/userloginex.php 题意:给我们n个数,然后给我们一个数字K,再给我们两个区间[L,R],[U,V],问我们从这两个区间里分别取一个数,有多少种取法,可以使得所取的两个数和为K。 分析:莫队算法+容斥定理。...

行云出岫 355

【DRAM存储器二】Sense Amplifier

详述DRAM颗粒中感应放大器功能、电路结构、工作原理和操作波形

highman110的博客 7199

手把手教你学simulink(69.3)--毫米波5G/6G 系统场景实例设计并实现基于Simulink的毫米波多用户MIMO通信系统模型

毫米波频段(30 GHz到300 GHz)因其高带宽和高速率特性,成为5G和未来6G通信系统的理想选择。然而,毫米波信号的传播特性较差,容易受到大气吸收、雨衰、建筑物遮挡等因素的影响。为了克服这些挑战并提高通信容量,多用户MIMO(MU-MIMO, Multi-User Multiple-Input Multiple-Output)技术被广泛应用。多用户MIMO技术通过在基站和多个用户之间同时传输多个数据流,充分利用空间资源,从而显著提升系统容量和频谱效率。

MHD0815的博客 493

hdu_5213_Lucky(莫队算法+容斥定理)

题目连接:hdu_5213_Lucky 题意:给你n个数,一个K,m个询问,每个询问有l1,r1,l2,r2两个区间,让你选取两个数x,y,x,y的位置为xi,yi,满足l1 题解:首先,这题没有修改操作,即可以离线,离线区间问题就要想到莫队算法,然后看状态怎么搞,因为要求的答案满足区间的可加性,我们令f(l,r)表示 l到r这个区间满足条件的ans,令F(l1,r1,l2,r2)为在这两个区

bin_gege的博客 704

YOLOv11缝合添加注意力机制:添加YOLO-Face的SEAM到并行通道空间注意力机制【附代码】

在目标检测的实际应用中,物体遮挡是一个严重影响检测精度的难点。本文将基于YOLOv11架构,探索融合YOLO-Face中提出的SEAM注意力机制以提升对遮挡物体的感知能力,并在此基础上提出一种轻量化双路径并行注意力机制C2PSA,进一步提升检测性能。

一键难忘的博客 1527

【HDU 5213 Lucky】 莫队算法

HDU5213 给你一个n个数的序列a,给你q个询问,每次询问给两个不相交的区间,求a[i]+a[j]=k的方案数 i属于第一个区间,j属于第二个区间。 对于这种两个区间内查询得问题,我们要看看能不能转化为一个区间之内的查询操作。 我们设f(l,r)f(l,r)f(l,r)为[l,r][l,r][l,r]区间内选i,j,a[i]+a[j]=ka[i]+a[j]=ka[i]+a[j]=k的方...

lajiyuan的博客 288

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Lucky (HDU - 5213 ,莫队算法 + 容斥原理)

一.题目链接: HDU-5213 二.题目大意: 有 n 组数,一个 k 值,m 次询问. 每次询问给出两个区间,求这两个区间内的数有多少组和为 k. 三.分析: 比较经典的莫队算法(奈何我第一次见) 莫队算法一般用来解决离线算法中的区间问题. 又被称为离线区间的万能解法(真是一个可啪的算法). 又因区间不连续,所以先要用容斥原理处理一下. 由容斥原理得:F(L1, R1, L...

The___Flash的博客 247

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Lucky - HDU 5213 莫队算法

Lucky Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 419    Accepted Submission(s): 143 Problem Description WLD is always very luc

提比的强行AC 542

hdu 5213 Lucky && 莫队算法的理解

题意: Lucky    Accepts: 34    Submissions: 267  Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) 问题描述 wld有n个数(a1...an) 保证对于任意1≤i≤n,1≤ai≤n wld有一

c337134154的专栏 1441

HDU5213 Lucky 莫队算法 容斥定理

  题意:有一串数字 a[i] 和一个K 还有m个查询 x1 y1 x2 y2 求一共有多少对数u,v 满足 a[u]+a[v]==K u在区间x1 y1 v在区间x2 y2种 用容斥定理即可 ans= f(x1,y2) - f(x1,x2-1) - f(y1+1,y2) + f(y1+1,x2-1) 就是答案了 注意维护的方式也比较巧妙 #inc...

weixin_30549175的博客 127

hdu5213 Lucky 莫队算法+容斥

题目:给你N个数字,一个K,M个询问L,R,U,V,问你在区间[L,R]内找一个数x,在区间[U,V]内找一个数y,使得x+y=K,一共有多少种方法。 思路:莫队算法+容斥。 代码: #pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include #include #include #inc

ACVevtor的博客 379

HDU 5213 Lucky (莫队算法+容斥定理)*

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5213 #include&lt;bits/stdc++.h&gt; using namespace std; #define debug puts("YES"); #define rep(x,y,z) for(int (x)=(y);(x)&lt;(z);(x)++) #define read(x,...

满月照亮的路 313

hdu 5213 Lucky(莫队算法分块+容斥定理)

Lucky Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 418    Accepted Submission(s): 142 Problem Description WLD is always very lucky.H

llin-黎辰 1351

HDU 5213 Lucky(容斥原理+莫队算法)

其实读完题,想了一下没有什么优化思路,就想到大概是莫队算法了。         大致题意是给你一个数列{ai},和一个固定的奇数K,然后很多个询问,每个询问给出两个区间[l,r]和[u,v],然后问满足ai+aj=K的数对(i,j)有几对,其中i在区间[l,r]中,j在区间[u,v]中。         虽然说知道了要用莫队,但是实际上,这里一个询问有两个区间,这应该如何应对呢?用两个关键字莫队?后来才知道,此题符合容斥原理。我们考虑一个询问(l,r,u,v)我们可以拆开来看。首先有(l,v),即在整个大区

alpc_qleonardo 555

HDU - 5213 Lucky(莫队算法+容斥思想)

题目大意:多次询问,每次询问两个区间[l1,r1],[l2,r2][l_1,r_1],[l_2,r_2]个选出一个元素,有多少种选择方法可以使选出的两数的和为定值 k 。

薛崇祥的博客 522

【HDU5213 BestCoder Round 39D】【莫队算法+容斥】Lucky 两个区间各选一个数使得和为K的方案数

#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; void fre(){freopen("c://test//input.in","r",stdin);freopen("c:

snowy_smile的博客 1032

HDU 5213 Lucky 离线莫队+容斥

/* HDU 5213 Lucky 离线莫队+容斥; 链接:http://acm.hdu.edu.cn/showproblem.php?pid=5213 题意:所给两个区间各选一个数的和为k的二元组的数量; 分析:直接对两个区间进行莫队离线 显然是不可行的 移动的次数较多--&gt;TLE; 考虑将两个区间进行合并 容斥原理 假设所选区间为 f(l,r) :表示区间[l,r]满足题意的二元组...

布呗之路 267

Lucky HDU - 5213 (莫队,容斥)

WLD is always very lucky.His secret is a lucky number . is a fixed odd number. Now he meets a stranger with numbers:.The stranger asks him questions.Each question is like this:Given two ranges an...

weixin_30387663的博客 141
上一篇: 【莫队算法】[HDU5145]NPY and girls
下一篇: 【后缀数组】[POJ1743]Musical Theme 乐曲主旋律
outer_form
博客等级 码龄11年 110粉丝 170原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值