【BZOJ 2038】【2009 国家集训队】小Z的袜子

Ansys Motor-CAD:概述(EMag、THERM、LAB、MECH) 在这篇博客中,我概述了如何使用 Ansys Motor-CAD 模型、模拟、分析和后处理结果来评估电机性能,并帮助您为您的应用选择优化的电机,并通过电机设计选择实现成本效益和效率。我介绍了各种可用的电机类型、可供选择的物理模块和可配置的多物理选项。E-Mag 物理模块有许多选项卡,涵盖几何创建、材料选择、电磁设置、条件、求解器类型、解决方案模型、耦合设置等的所有设置。热物理模块有许多选项卡,涵盖几何创建、材料选择、热设置、条件、求解器类型、解决方案模型、耦合设置等的所有设置。分析结果的速度相结合。 阅读详情

分块  分块+莫队算法

我还是感觉我的分块怪怪的,我把左端点按所在块排序,相同时按右端点排序(均为升序),然后从上一个区间的答案转移到这个区间的答案。

A过之后,我把左端点按所在块排序变为直接按左端点排序,其余不变,结果T了。。。。。。

哪位神犇能告诉我为什么是这样的,抑或我写的是不是分块,蒟蒻不胜感激 

PS:经过一番搜题解后,我大概了解自己写的是啥了。这题的询问[L,R]可以在O(1)时间内转移到[L+1,R]、[L-1,R]、[L,R-1]、[L,R+1]那么我们可以采用莫队算法,那么从[L,R]转移到[L',R']的代价就是O(|L-L'|+|R-R'|),我们需要合理的安排处理询问的次序,最严格的方法是把每个询问看作二维平面中一个点(L,R),求出这m个询问的曼哈顿距离最小生成树,可以证明复杂度上限为O(NsqrtN)。但貌似可以用分块来替代MST,方法就是把左端点按所在块排序,相同时按右端点排序,这样一个块内的查询是O(N)的,总复杂度也是O(NsqrtN)

code:

#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
int a[50001],b[50001],num[50001];
long long ans[50001][2];
long long sum;
int n,m,L,R;
struct hp{
	int l,r,st,num;
}qst[50001];
int cmp(const hp &a,const hp &b)
{
	if ((a.st<b.st)||(a.st==b.st&&a.r<b.r))
	  return 1;
	else return 0;
}
long long gcd(long long a,long long b)
{
	if (a%b==0) return b;
	else return gcd(b,a%b);
}
long long C(int m,int n)
{
    long long now=1;
    if (m<n-m) m=n-m;
    int i=m+1,j=1;
    while (i<=n&&j<=n-m)
      {now=now*i/j; 
      i++; 
      j++;}
    if (i<n)
      {
        while (i<=n)
          {now=now*i; i++;}
      }
    return now;
}
void work(int i)
{
	int l,r;
	l=qst[i].l; r=qst[i].r;
	while (l>L)
	  {
	    num[a[L]]--;
		if (num[a[L]]==1)
		  sum=sum-C(2,num[a[L]]+1);
		if (num[a[L]]>1)
		  sum=sum-C(2,num[a[L]]+1)+C(2,num[a[L]]);
		L++;
	  }
	while (l<L)
	  {
	  	L--;
	    num[a[L]]++;
	    if (num[a[L]]==2)
	      sum=sum+C(2,num[a[L]]);
	    if (num[a[L]]>2)
	      sum=sum-C(2,num[a[L]]-1)+C(2,num[a[L]]);
	  }
	while (r>R)
	  {
	  	R++;
	    num[a[R]]++;
	    if (num[a[R]]==2)
	      sum=sum+C(2,num[a[R]]);
	    if (num[a[R]]>2)
	      sum=sum-C(2,num[a[R]]-1)+C(2,num[a[R]]);
	  }
	while (r<R)
	  {
	    num[a[R]]--;
	    if (num[a[R]]==1)
	      sum=sum-C(2,num[a[R]]+1);
	    if (num[a[R]]>1)
	      sum=sum-C(2,num[a[R]]+1)+C(2,num[a[R]]);
	    R--;
      }
	ans[qst[i].num][0]=sum;
}
int main()
{
	int i,size,per;
	long long t;
	scanf("%d%d",&n,&m);
	for (i=1;i<=n;++i)
	  {
	    scanf("%d",&a[i]);
	    b[i]=a[i];
      }
    sort(b+1,b+n+1);
    size=unique(b+1,b+n+1)-b-1;
    for (i=1;i<=n;++i)
      a[i]=upper_bound(b+1,b+size+1,a[i])-b-1;  
    per=sqrt(n); 
    for (i=1;i<=m;++i)
      {
        scanf("%d%d",&qst[i].l,&qst[i].r);
        qst[i].st=qst[i].l/per+1;
        qst[i].num=i;
      }
    sort(qst,qst+m+1,cmp);
    ans[qst[1].num][1]=C(2,qst[1].r-qst[1].l+1); 
    for (i=qst[1].l;i<=qst[1].r;++i)
      {
        num[a[i]]++;
        if (num[a[i]]==2)
          sum+=C(2,num[a[i]]);
        if (num[a[i]]>2)
          sum=sum-C(2,num[a[i]]-1)+C(2,num[a[i]]);
      }
    ans[qst[1].num][0]=sum;
    L=qst[1].l; R=qst[1].r;
    for (i=2;i<=m;++i)
      {
      	ans[qst[i].num][1]=C(2,qst[i].r-qst[i].l+1);
        work(i);
      }
    for (i=1;i<=m;++i)
      {
        t=gcd(ans[i][0],ans[i][1]);
		ans[i][0]/=t; ans[i][1]/=t;
		printf("%lld/%lld\n",ans[i][0],ans[i][1]); 
      }
}

错误代码:11300001 数据集 [xxx] 配置错误“=”附近有语法错误(原理分析) 错误代码:11300001 数据集 [1_Workshift] 配置错误“=”附近有语法错误。 阅读详情

相关推荐

bcftools实战指南:从VCF文件处理到变异分析全流程解析

在基因组数据分析中,VCF(Variant Call Format)文件是存储基因序列变异信息的标准格式,广泛应用于群体遗传学和生物信息学研究。其核心原理是通过结构化文本记录SNP、INDEL等变异位点的基因型、质量值和注释信息。掌握高效处理VCF文件的技术,对于提升变异检测、数据清洗和下游分析的工作流效率具有重要价值。在生物信息学工具生态中,bcftools作为处理VCF/BCF文件的瑞士军刀,通过模块化设计实现了数据查询、过滤、统计和格式转换等核心功能。其流式处理架构支持管道化操作,能有效应对海量基因组

weixin_29081703的博客 322

BZOJ_2038_[2009国家集训队]小Z的袜子(hose)_莫队

BZOJ_2038_[2009国家集训队]小Z的袜子(hose)_莫队 Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿。终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命…… 具体来说,小Z把这N只袜子从1到N编号,然后从编号L到R(L尽管小Z并不在意两只袜子是不是完整的一双,甚至不在意两只袜子是否一左...

97

一口气看完TransformerXL详细解释带代码一:相对位置编码

相对位置编码(Relative Position Encoding)是Transformer模型中用于捕捉序列元素间相对位置关系的一种方法,与绝对位置编码(如BERT中的固定位置嵌入)不同,它直接建模元素之间的相对距离,从而更灵活地处理长序列或不同长度的序列。1. 为什么需要相对位置编码?​。

m0_73426548的博客 1426

bzoj2038【2009国家集训队】小Z的袜子(hose)

莫队算法

AaronPolaris 1651

FPGA+滨淞CCD实战:手把手教你搭建S7031/S10142成像电路(附避坑指南)

本文详细介绍了使用FPGA驱动滨淞CCD传感器(S7031/S10142)构建高精度成像系统的完整实战流程。内容涵盖核心器件选型、系统架构规划、电路板(焦面板与接口板)设计要点、FPGA Verilog逻辑实现,并提供了从电源管理、信号调理到数据采集的详细避坑指南,帮助读者从零搭建稳定可靠的成像电路。

weixin_29271263的博客 227

Camera(5)metadata

Metadata 是整个 Android camera 中类似于高楼大厦中的管道系统一样,贯穿了整个 Camera 的 Framework 和 vendor HAL。Metadata 里面包含了所有的控制、参数、返回值等等。Metadata分为Android原生的Metadata和芯片商或者用户自定义的Metadata,即Android Tag和Vendor Tag。Vendor Tag在Hal中定义,并在camx和chi目录中使用。

qq_55893245的博客 3052

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

2038: [2009国家集训队]小Z的袜子(hose) Description 作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿。终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命……具体来说,小Z把这N只袜子从1到N编号,然后从编号L到R(L尽管小Z并不在意两只袜子是不是完整的一双,甚至不在意两只袜子是否一左一右,他却...

aln1541的博客 122

Python爬虫:招聘网站岗位要求、薪资与求职者数据爬取与分析

通过本文的教程,我们学习了如何通过 Python 编写招聘数据爬虫,爬取招聘网站上的岗位要求、薪资和求职者数据,并通过数据存储、清洗、分析和可视化,获取有价值的信息。网站如智联招聘、猎云网、前程无忧等,都提供了大量的招聘信息,包括岗位要求、薪资范围、工作经验、学位要求、招聘公司等。本文将介绍如何通过 Python 编写爬虫,爬取招聘网站上的岗位要求、薪资、求职者数据,并通过数据存储、分析和可视化等手段,为求职者或招聘者提供实用的信息和决策支持。通过循环抓取多个页面的数据,可以获取不同岗位的信息。

2201_76125261的博客 722

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

莫队

a free man 599

【2026年华为暑期实习(AI)-4月29日-第一题- 选择题】(题目+思路+Java&C++&Python解析+在线测试)

本文摘要涵盖了机器学习和深度学习中的多个核心概念与技术,包括非负矩阵分解、条件数、MobileNet创新点、LDA降维、大模型评测指标、半精度训练、多任务学习、GPU存储层次、正则化、张量并行等。通过12道单选题和8道多选题的形式,系统性地考察了相关理论原理、应用场景及工程实践要点。题目设计注重概念准确性(如LDA目标函数)、技术细节(如Megatron-LM的并行策略)与实际应用(如FP16训练动机),并包含概率统计(二项分布)和数值计算(微分误差分析)等数学基础内容,全面检验读者对AI领域关键知识的掌握

m0_73659489的博客 143

零基础入门simulink仿真建模--通信领域的编码与纠错技术--基于Simulink的CRC校验算法仿真建模示例

CRC是一种广泛应用于数字网络和存储设备中的错误检测码。它的基本原理是利用除法运算来产生固定长度的校验位,这些校验位被附加到原始数据之后发送出去。接收端收到数据后,重新计算校验值并与接收到的校验值进行比较,如果两者相同,则认为数据没有错误;否则,表示数据可能已被损坏。发送端:随机比特生成模块 + CRC生成模块。信道:模拟数据传输过程中的潜在错误(可选)。接收端:CRC校验模块 + 错误指示模块。通过本指南,我们介绍了如何基于Simulink搭建一个简单的CRC校验系统模型,并进行了仿真分析。

amy_mhd的博客 729

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

bzoj2038[2009国家集训队]小Z的袜子(hose) 题意: 把N只袜子从1到N编号,每次求从编号为L到R的袜子中抽两只,有多大的概率抽到颜色相同的袜子。 题解: 不知道要用什么数据结构,但是可以用一个全局的数组保存每个颜色当前数量,使由区间[l,r]推出[l,r±1]的答案和[l±1,r]的复杂度为O(1),对这种问题,可以用复杂度为O(nsqrt(n))的莫队算法解决...

anheku1562的博客 153

SpringBoot从入门到精通(全)

前言 ==本博文结合软件idea进行主要讲解== **springboot的特性主要有** - 简化 Spring 应用程序的创建和开发过程 - 抛弃了繁琐的 xml 配置过程,采用大量的默认配置简化以及注解反射 - 直接使用 java main 方法启动内嵌的 Tomcat 服务器运行 Spring Boot 程序,不需要部署 war 包文件 **四大核心**分别为自动配置、起步依赖、Actuator和命令行界面

码农研究僧的博客 7万+

BZOJ 2038 2009国家集训队 小z的袜子(house)

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

142

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

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

小Z的袜子 hose 2009-国家集训队 bzoj-2038 题目大意:给定一个n个袜子的序列,每个袜子有一个颜色。m次询问:每次询问一段区间中每种颜色袜子个数的平方和。 注释:$1\le n,m\le 5\cdot 10^4$。 想法: 莫队算法的第一道例题。 每次左指针和右指针动的时候注意平方即可, 最后,附上丑陋的代码... ... #include &lt...

dianan0938的博客 140

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

[BZOJ2038][2009国家集训队][莫队][分块]小z的袜子

[Description] 【问题描述】      作为一个生活散漫的人,小 Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿。终于有一天,小 Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命……      具体来说,小 Z把这N只袜子从 1到N 编号,然后从编号 L到R (L) 的这R-L+1只袜子中随机抽出两只穿上。 尽管小Z并不在意两只袜子是不是完整的一双,甚至不在意

gaotianyu1350的专栏 916

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

2038: [2009国家集训队]小Z的袜子(hose) 【题目描述】 传送门 【题解】 裸的莫队,套一下组合数就可以了。 代码如下 #include<cmath> #include<cstdio> #include<cctype> #include<algorithm> #define...

aiweiluan5095的博客 129

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

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

178

BZOJ 2038: [2009国家集训队]小Z的袜子

二次联通门 :BZOJ 2038: [2009国家集训队]小Z的袜子 /* BZOJ 2038: [2009国家集训队]小Z的袜子 莫队经典题 但是我并不认为此题适合入门。。 Answer = ∑ C (sum[i], 2) / C (r - l + 1, 2) = ∑ (su...

weixin_30555753的博客 91

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

【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

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

BZOJ2038:[2009国家集训队]小Z的袜子

浅谈莫队:https://www.cnblogs.com/AKMer/p/10374756.html 题目传送门:https://lydsy.com/JudgeOnline/problem.php?id=2038 首先答案肯定是\(\frac{\sum cnt_i*(cnt_i-1)}{r-l+1}\),\(cnt_i\)表示第\(i\)种颜色的袜子的个数。 所以我们每次移动左右端点的时...

aga28832的博客 146

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

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

agtvo48266的专栏 134

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

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

ZAQ的博客 1384

[2009国家集训队] BZOJ2038 小Z的袜子

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

ETO的博客 200

【2009国家集训队】bzoj2038 小Z的袜子

莫队算法

YHaX的博客 585
上一篇: CODEVS3550 不一样的根号算法
下一篇: 【AHOI 2013】【BZOJ 3236】作业
Lcomyn
博客等级 码龄12年 14粉丝 74原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值