BZOJ 2038 [2009国家集训队]小Z的袜子(hose) (莫队算法)

【PE/Bugs系列】error LNK2038:检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项 Date: 2019-4-4【Tag: 项目经验】 1、error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项; 2、C与C++混合调用(C文件中调用C++文件的函数,或者C++中调用C文件中的函数) 阅读详情

题意:

给你n个数字,要进行m次查询,每次查询中,问l-r中,任意选两个数字且这两个数字相同的概率

思路:

第一次写莫队算法,莫队算法是一种暴力解决区间问题的一种算法。只有在区间没修改或修改的很少才能使用。
莫队算法其实很简单很暴力。如果我们知道了[l,r]区间的答案,那么我们就能o(1)地知道[l-1,r],[l,r-1],[l+1,r],[l,r+1]。这样的话,要知道[l’,r’]的答案,只要用一个曼哈顿距离的时间就能取到(就是|l’-l|+|r’-r|)。而我们只要通过分块,就能极大地缩短这个时间。如果我们根据查询的l分成n√块,每块再根据r排序,那么复杂度就能降为o(n∗n√),这就是莫队算法的大致思想。
对于这个题目而言,对于一个区间[l,r],设其中有颜色分别有a1 a2 a3...个 概率本身是

(2a1)+(2a1)+(2a1)+...(2r−l+1)

那么经过化简就是
a12+a22+a23+....−(r−l+1)(r−l+1)∗(r−l)

那么我们在变更区间的时候只要原来的分子减去原来的值,再加上变化后的值就是现在的分子了,而分母可以直接计算,在l和r转移后,化简下分手保存到答案即可。

错误及反思:

第一次写莫队算法,纪念一下

代码:

#include<bits/stdc++.h>
using namespace std;
const int maxn= 50000+10;
int col[maxn],pos[maxn],cnt[maxn];
long long now=0;
pair<long long,long long> ans[maxn];
struct query{
    int l,r,id;
}Q[maxn];
bool cmp(query a,query b)
{
    if(pos[a.l]==pos[b.l])
        return a.r<b.r;
    return a.l<b.l;
}
void update(int co,int p)
{
    now-=1ll*cnt[co]*cnt[co];
    cnt[co]+=p;
    now+=1ll*cnt[co]*cnt[co];
}
int n,m;
int main(){
    scanf("%d%d",&n,&m);
    for(int i=1;i<=n;i++)
        scanf("%d",&col[i]);
    int block=sqrt(n);
    for(int i=1;i<=n;i++)
        pos[i]=(i-1)/block+1;
    for(int i=0;i<m;i++)
    {
        scanf("%d%d",&Q[i].l,&Q[i].r);
        Q[i].id=i;
    }
    sort(Q,Q+m,cmp);
    for(int i=0,L=1,R=0;i<m;i++)
    {
       for(;R<Q[i].r;R++)
            update(col[R+1],1);
        for(;R>Q[i].r;R--)
            update(col[R],-1);
        for(;L<Q[i].l;L++)
            update(col[L],-1);
        for(;L>Q[i].l;L--)
            update(col[L-1],1);

        long long tempa=now-(Q[i].r-Q[i].l+1);
        long long tempb=1ll*(Q[i].r-Q[i].l+1)*(Q[i].r-Q[i].l);
        long long GCD=__gcd(tempa,tempb);
        tempa/=GCD;
        tempb/=GCD;
        ans[Q[i].id]={tempa,tempb};
    }
    for(int i=0;i<m;i++)
        printf("%lld/%lld\n",ans[i].first,ans[i].second);
}
从特斯拉到蔚来:拆解主流智能汽车的车联网架构,看它们如何实现‘车、路、云’协同 本文深度解析了特斯拉、蔚来等主流智能汽车的车联网架构,详细拆解了其‘车、路、云’协同的技术实现。从车内网络、车际通信到云端协同,分析了通信技术、系统架构等关键技术选择,揭示了不同厂商如何通过差异化布局构建竞争优势。 阅读详情

相关推荐

深度解析NXP AMCLIB状态观测器:PMSM无感FOC控制实战指南

状态观测器是现代电机控制中的核心算法,它基于电机数学模型,通过测量定子电压和电流,实时估算出转子的位置和速度,从而替代了传统的物理传感器。其原理遵循“预测-校正”的闭环结构,通过比较模型预测值与实际采样值的误差,不断修正内部状态估计。这项技术的核心价值在于实现了无传感器控制,显著降低了系统成本、提升了可靠性与紧凑性,广泛应用于伺服驱动、变频器、电动汽车和家电等领域。本文聚焦于NXP AMCLIB库中的角度跟踪观测器和反电动势观测器,深入剖析其设计思路、固定点运算实现以及参数整定方法,为工程师在永磁同步电机无

cumi7754的博客 2829

BZOJ2038: [2009国家集训队]小Z的袜子(hose) 莫队算法 莫队算法讲解及时间复杂度证明

2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec  Memory Limit: 259 MB Submit: 7088  Solved: 3258 [Submit][Status][Discuss] Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿。终于有一天,小Z再也无

Oakley 2479

国产大模型高考横评:数学推理与教育落地能力实测

大模型能力评估正从开放榜单转向封闭任务的确定性验证,高考作为强逻辑、低容错、高精度的标准化考试,成为检验模型真实推理能力的理想标尺。其核心在于考察知识覆盖、步骤完整性、单位敏感性与教学对齐度,而非单纯答案正确率。数学解答题尤其凸显模型在前提校验、条件枚举与过程可控性上的差异,反映出训练数据与教育语料深度耦合带来的工程化优势。该范式已延伸至语文语感建模、英语表达习惯适配及理综跨学科缝合等场景,为智能阅卷、精准答疑和教培系统集成提供可复现、可解释、可部署的技术依据。

weixin_30436581的博客 288

bzoj 2038: [2009国家集训队]小Z的袜子(hose)(莫队算法)

Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿。终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命…… 具体来说,小Z把这N只袜子从1到N编号,然后从编号L到R(L 尽管小Z并不在意两只袜子是不是完整的一双,甚至不在意两只袜子是否一左一右,他却很在意袜子的颜色,毕竟穿两只不同色的袜子会很尴尬。 你的任务便是告诉小Z

ZAQ的博客 1384

5.4 磁悬浮轴承控制系统仿真:在MATLAB/Simulink中搭建包含功放、传感器模型的闭环系统模型,进行稳定性与动态性能仿真

磁悬浮轴承控制系统仿真方法 摘要:磁悬浮轴承控制系统仿真需建立包含转子动力学、传感器、控制器、功率放大器和电磁执行器的高保真非线性模型。通过MATLAB/Simulink搭建闭环系统,重点建模传感器带宽限制与噪声、功放饱和特性以及电磁力非线性。仿真分析包括时域阶跃响应、扰动抑制测试,频域稳定性分析(伯德图、奈奎斯特图),以及参数摄动下的鲁棒性验证。关键要验证控制算法在非线性因素影响下的稳定性和动态性能,为实际系统实现提供可靠依据。仿真中需特别注意物理量单位一致性和数字控制离散化效应。

技术工作者 1107

日常工作记录---在虚拟机中进行slam建图

   今天是10月24号,首先祝各位程序员们节日快乐!!!    最近一周由于实习的原因,对ROS的探索学习,停滞了一段时间,所以今天也就没什么大的进展,本篇文章仅仅记录一下,我在虚拟机中进行slam建图可行性验证的过程,本篇文章同样使用古月学院《如何在Gazebo中实现阿克曼转向车的仿真》的课程资料来进行验证    下面各条之间并没有严格的顺序关系,每一条都是独立的,都是我在验证过程中的经验或者记录:    1、在运行roslaunch bringup racecar_gazebo_rviz.lau

慕羽★的博客 4828

【BZOJ 2038 [2009国家集训队]小Z的袜子(hose)】 莫队算法

2038: [2009国家集训队]小Z的袜子(hose) Time Limit:20 SecMemory Limit:259 MB Submit:17121Solved:7877 [Submit][Status][Discuss] Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿。终于有一天,小Z再也无法忍受这恼人的找袜...

pxlsdz的博客 443

【数据集】MODIS 的 MOD07 大气廓线产品概述及下载

MODIS 的 MOD07 大气廓线产品概述及下载

WW、forever的博客 550

BZOJ2038 : [2009国家集训队]小Z的袜子(hose)(莫队算法)

2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec Memory Limit: 259 MB Submit: 19269 Solved: 8851 [Submit][Status][Discuss] Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿。终于有一天,小Z再也无法忍受这恼人的找袜...

weixin_30387663的博客 128

FD.io/VPP — VPP 的实现原理解析

目录 文章目录目录VPPVPP 的关键创新技术数据报文的矢量处理标量报文处理方式I-cache miss 问题矢量数据报文处理方式标量 v.s. 矢量报文处理流程Packet Processing Graph(数据报文处理图)Packet Processing Graph 的处理流程Graph Node Plugin 机制 VPP WIKI:https://wiki.fd.io/view/VPP Docs:https://fd.io/docs/vpp/master/index.html Github:ht

烟云的计算 2593

29、智能问答系统:原理、挑战与实现

本文深入探讨了智能问答系统的原理、挑战与实现方法。从智能问答系统的定义、重要性、问题类型和构建步骤,到实现中的歧义问题、数据集创建及基于规则的系统实现,全面解析了这一自然语言处理领域的重要应用。同时,文章还介绍了智能问答系统的应用场景、发展趋势以及面临的挑战与应对策略,为读者提供了一个全面而深入的理解框架。

redis7keeper的博客 163

BZOJ 2038 2009国家集训队 小Z的袜子(hose) 莫队算法

题目大意:给定n个点,每个点有一个颜色,m次询问,每次询问一个区间内随机选出两个点颜色相同的概率是多少 OTZ莫队算法…… 具体做法无论是分块还是曼哈顿最小生成树网上都讲解的很详细 我就不累述了 这个题的做法是记录一个cnt数组表示当前区间内每种颜色有多少个 加入一个颜色为x的点就ans+=cnt[x] 然后cnt[x]++ 减少一个颜色为x的点就cnt[x]-- 然后ans-=cnt[

世界 2035

数据资产可视化分析:PowerBI在大数据管理中的实战

目的:帮你搞懂“为什么数据资产需要可视化?”“PowerBI能帮企业解决什么问题?”,并掌握用PowerBI做大数据可视化的实战技巧。范围:覆盖数据资产定义、可视化分析原理、PowerBI核心功能(数据连接、建模、可视化)、零售企业实战案例,以及未来趋势与挑战。背景:为什么企业的数据像乱堆的玩具?核心概念:数据资产、可视化分析、PowerBI分别是什么?它们怎么配合?实战步骤:用PowerBI帮零售企业整理“销售玩具箱”,做出能指导决策的仪表盘;应用场景:不同部门怎么用这个“整理好的玩具箱”?

2501_92132293的博客 906

kyeremal-bzoj2038-[2009国家集训队]-小z的袜子(hose)-莫队算法

bzoj2038-[2009国家集训队]-小z的袜子(hose) F.A.Qs Home Discuss ProblemSet Status Ranklist Contest ModifyUser   Manacher Logout 捐赠本站 Notice:省选季快乐&另求历年World Final数据,谢谢&OJ试题突

kyeremal的专栏 1134

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

BZOJ 2038 [2009国家集训队]小Z的袜子(hose)题解 莫队算法

一直觉得莫队莫队,这名字真好听,大概是初恋(小学的一个很可爱的女孩子)姓莫233?题目链接: http://www.lydsy.com/JudgeOnline/problem.php?id=2038Description作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿。终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命…… 具体来说,小Z把这N只袜

Monica 674

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

bzoj Problem 2038: [2009国家集训队]小Z的袜子(hose) (莫队算法)

题目链接 Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿。终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命…… 具体来说,小Z把这N只袜子从1到N编号,然后从编号L到R(L 尽管小Z并不在意两只袜子是不是完整的一双,甚至不在意两只袜子是否一左一右,他却很在意袜子的颜色,毕竟穿两只不同色的袜子会很尴尬。 你的任务便是告诉...

Fushicho_XF的博客 292

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

bzoj 2038 [2009国家集训队]小Z的袜子(hose) 莫队算法

2038: [2009国家集训队]小Z的袜子(hose) Time Limit:20 SecMemory Limit:259 MBSubmit:10239Solved:4659[Submit][Status][Discuss] Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿。终于有一天,小Z再也无法忍受这恼人的...

weixin_34292959的博客 70

BZOJ 2038([2009国家集训队]小Z的袜子(hose)-莫队算法序列)

2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec  Memory Limit: 259 MB Submit: 778  Solved: 391 [Submit][Status][Discuss] Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿。终于有一天,小Z再也无法忍受这恼人的找

nike0good |Oier&ACMer | 熟能生巧 1740

[BZOJ2038] [2009国家集训队]小Z的袜子(hose) 莫队算法练习

2038: [2009国家集训队]小Z的袜子(hose) Time Limit:20 SecMemory Limit:259 MBSubmit:10299Solved:4685[Submit][Status][Discuss] Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿。终于有一天,小Z再也无法忍受这恼人的...

weixin_30933531的博客 95

bzoj 2038 [2009国家集训队]小Z的袜子(hose)(莫队算法)

题目链接 2038: [2009国家集训队]小Z的袜子(hose) Time Limit: 20 Sec  Memory Limit: 259 MB Submit: 7285  Solved: 3349 [Submit][Status][Discuss] Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿。终于有一天,小Z再

fouzhe的博客 387

[bzoj2038][2009国家集训队]小Z的袜子(hose) 莫队算法

一切利己的生活,自——以时间来衡量生命。爱,则无所不为;过于自爱,则一无所为。

Unlimited Code Works 332

BZOJ 2038: [2009国家集训队]小Z的袜子(hose)|分块|莫队算法

似乎莫对算法才是正确的的姿势 不过直接分块暴力也可以 需要与处理几个东西和作诗那个题非常的相似,只不过那个题是强制在线的 维护到从开始每一个块的颜色的前缀和,块到块之间的答案 询问的时候,不跨过块就排序暴力判断,跨过块就先统计整块的答案,然后把两边的的单独排序暴力更新答案 学了莫队之后似乎就要换个姿势了#include<cstdio> #include<cstdlib> #include<

ws_yzy的博客 853

bzoj2038 : [2009国家集训队]小Z的袜子(hose) 莫队算法

转自http://www.cnblogs.com/kuangbin/archive/2013/08/16/3263483.html 2038: [2009国家集训队]小Z的袜子(hose) Time Limit:20 SecMemory Limit:259 MBSubmit:966Solved:472[Submit][Status] Description 作为一...

weixin_30325487的博客 81

[BZOJ]2038: [2009国家集训队]小Z的袜子(hose) 莫队算法

Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿。终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命…… 具体来说,小Z把这N只袜子从1到N编号,然后从编号L到R(L 尽管小Z并不在意两只袜子是不是完整的一双,甚至不在意两只袜子是否一左一右,他却很在意袜子的颜色,毕竟穿两只不同色的袜子会很尴尬。 你的任务便是告诉小Z

TYB的博客 552

BZOJ 2038: [2009国家集训队]小Z的袜子(hose)(莫队算法)

题目链接:点击打开链接 题意:给n个袜子, 每个袜子有一个颜色。 m次查询,每次查询给一个区间, 求在区间里的任选一对袜子的颜色相同的概率。 最经典的莫队算法, 莫队算法有两种, 我刚刚学了第一种:分块。 简单来说,假设总区间长度为n,那么将区间分成size = sqrt(n)块,那么每一块的长度为n/size,也是sqrt(n),所以每次只维护一块里的内容和块与块之间的内容,如果改变一个数

AC_Arthur的专栏 1527
上一篇: Codeforces Round #437 (Div. 2) B. Save the problem!
下一篇: Codeforces Round #340 (Div. 2) E - XOR and Favorite Number (莫队算法)
Roll_Keyboard
博客等级 码龄9年 10粉丝 128原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值