Codeforces Round #852 (Div. 2) D. Moscow Gorillas

news2025/1/16 14:52:34

传送门

题意:

给你两个长度为n的排列p,q,同时定义mex表示为在mex中,缺少的最小正整数:如

mex[1,3]=2,mex[1,2,3]=4。

问你有多少个l,r使mex([p_l,...p_r])=mex([q_l...q_r])。

思路 :

可以从mex=1,2,3,4,..n这样一步一步看怎么找。

当mex为1的时候,就是找两边的1,然后分成的三部分计算答案就好

mex为2的时候,那么就是包括1的区间同时不能包括2,设2位置靠左边的下标为L,靠右边的下标为R。那么能够存在答案的只有三种情况:2的区间全在左边,全在右边,包括了1的区间。

1.全在左边(即R<l),那么就相当于左边l-r种情况和右边(n-r+1)种情况的排列组合,结果相乘即可。

 

2.全在右边(L>r),同理结果为(n-r+1)*(l-R).

3.包括了1,结果为(l-L)*(R-r),

之后区间进行叠加扩大。

当mex为3,4,5,...n的时候也是这样重复的进行计算,最后结果记得开ll。

 

代码:

 

#include<cstdio>
#include <iostream>
#include <algorithm>
#include <string.h>
#include <string>
#include <math.h>
#include<vector>
#include<queue>
#include<map>
#define sc_int(x) scanf("%d", &x)
#define sc_ll(x) scanf("%lld", &x)
#define pr_ll(x) printf("%lld", x)
#define pr_ll_n(x) printf("%lld\n", x)
#define pr_int_n(x) printf("%d\n", x)
#define ll long long 
using namespace std;

const int N=1000000+100;
int n ,m,h;
int s[N];

void slove( )
{
	int t;
	sc_int(n);

    map<int,int>q,w;
	for(int i =1;i<=n;i++)
	{
        int x;
        sc_int(x);
        q[x]=i;
	}
	for(int i =1;i<=n;i++)
	{
        int x;
        sc_int(x);
        w[x]=i;
	}
    ll res=0;
    ll l=q[1],r=w[1];
    if(l>r)swap(l,r);
    res+=(l-1)*l/2+(n-r)*(n-r+1)/2+max((ll)0,r-l-1)*(max((ll)0,r-l-1)+1)/2;

    for(int i =2;i<=n;i++)
    {
 
        ll L=q[i],R=w[i];
        if(L>R)swap(L,R);
        if(L>r)res+=l*(L-r);
        else if(R<l)res+=(n-r+1)*(l-R);
        else if(L<l&&R>r) res+=(l-L)*(R-r);
        l=min(l,L),r=max(r,R);
     
    }

    cout<<res+1;
	cout<<endl;
}

int main()
{
	int t;
	slove();


	return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/378949.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Word 行中公式与文字对不齐的解决方案

Word 行中公式与文字对不齐的解决方案问题-公式与文字不对齐解决方案简述版(亲测)解决方案详细版(亲测)参考方案问题-公式与文字不对齐 由于复制或其它误操作&#xff0c;可能会出现Word一行中公式与文字并不对齐的问题&#xff0c;有的公式会偏上或偏下&#xff0c;如下图所示…

【Linux内核】内核编程概述

1.GNU GNU计划和自由软件基金会&#xff08;FSF&#xff09;是由Richard M.Stallman于1984年创办的&#xff0c;GNU是“GNU’s Not UNIX”的缩写。到20世纪90年代初&#xff0c;GNU项目已经开发出许多高质量的免费软件&#xff0c;其中包括emacs编辑系统、bash shell程序、gcc…

PIGOSS BSM 信创运维之国产数据库监控

随着信创的推进&#xff0c;为国产数据库厂商提供了发展沃土&#xff0c;国产厂商扮演者越来越重要的角色。国产数据库以达梦、人大金仓、南大通用、高斯数据库GaussDB、万里开源为代表&#xff0c;而新兴厂商则利用分布式进行换道超车&#xff0c;以PingCAP、巨杉数据库、星环…

JAVA对象

目录 1.组成 1.1.概述 1.2.对象头 1.3.实例数据 1.4.对齐填充字节 2.实例化流程 1.组成 1.1.概述 JAVA对象由三部分组成&#xff1a; 对象头实例数据对齐填充字节1.2.对象头 对象头里面包含3部分主要内容&#xff1a; markwordklass数组长度&#xff08;只有数组对象…

StreamYOLO 代码阅读记录

目录 一、安装配置环境 二、运行 train.py文件遇到的问题 问题一 问题二 问题三 问题四 问题五 问题六 问题七 问题八 二、debug记录 1、 args 2、optimizer 3、ckpt 4、self.seq_dirs 5、self._classes 6、im_ann 7、annotations 8、obj 9、self.train_loade…

Qt——拖拽

Qt的拖拽可以按字面意思分为拖和拽两部分。一般来说我们常见的拖拽分别由两个程序合作完成。例如我们经常把桌面的文件拖拽进其他目录&#xff1a; ​ 编辑拖拽方可以发起多个拖拽类型&#xff08;复制、链接、移动等&#xff09;&#xff0c;接收方可以选择接受其中某个类型或…

《分布式技术原理与算法解析》学习笔记Day25

负载均衡 负载均衡是分布式可靠性中非常关键的一个问题&#xff0c;它在一定程度上反映了分布式系统对业务处理的能力。 什么是负载均衡&#xff1f; 负载均衡可以分为两种&#xff1a; 请求负载均衡&#xff0c;即将用户的请求均衡的分发到不同的服务器进行处理。数据负载…

扬帆优配|弹性增强 双向波动明显 人民币汇率走势将回归基本面

离岸人民币对美元汇率走势图 美联储加息预期起波澜&#xff0c;人民币汇率再临“7”关口。 到2月27日16时30分&#xff0c;在岸人民币对美元汇率收盘报6.9645&#xff1b;离岸人民币对美元汇率盘中最低触及6.9896&#xff0c;险些失守6.99关口。 人民币汇率走贬的一起&#x…

Odoo | Webserivce | 5分钟学会【JSONRPC】接口开发 - 换USERID(进阶)

文章目录JSONRPC - 换取USERID简述换取USERID1. 代码示例2. 换取结果JSONRPC - 换取USERID 简述 从Odoo JSONRPC 接口入门篇&#xff0c;可以发现我们直接传入了USERID&#xff0c;这只是为了方便快速测试。 其实按照常规流程&#xff0c;应该通过【用户名USERNAME】和【用户…

【LeetCode】No.237. 删除链表中的节点 – Java Version

题目链接&#xff1a;https://leetcode.cn/problems/delete-node-in-a-linked-list/ 1. 题目介绍&#xff08;237. 删除链表中的节点&#xff09; 有一个单链表的 head&#xff0c;我们想删除它其中的一个节点 node。 给你一个需要删除的节点 node 。你将 无法访问 第一个节点…

consul注册中心服务All service checks failing及解决

文章目录consul注册中心服务All service checks failing问题一&#xff1a;能注册&#xff0c;有报错&#xff0c;中间件不可用问题二&#xff1a;能注册&#xff0c;没报错&#xff0c;通不过检查问题三&#xff1a;同一个服务&#xff0c;注册了很多次consul注册中心服务All …

springBoot内容响应和内容协商原理

spring提供了15种默认返回值处理器&#xff1a; 一、处理返回值&#xff1a; this.returnValueHandlers.handleReturnValue(returnValue, getReturnValueType(returnValue), mavContainer, webRequest)二、获取对应的返回值处理器&#xff1a; private HandlerMethodReturnVa…

《第一行代码》 第九章:使用网络技术

一&#xff0c;WebView的用法 活动布局的代码&#xff1a; <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"><WebViewandroid:id&…

九龙证券|消费电子遇冷后转向动力储能赛道,但毛利率仍弱于同行

近年来&#xff0c;新能源的热度居高不下&#xff0c;顶着赛道光环&#xff0c;2月17日证监会发表信息显现&#xff0c;广州明美新能源股份有限公司&#xff08;简称明美新能&#xff09;首发上市取得通过。公司方案挂牌深交所创业板&#xff0c;并方案募资4.50亿元&#xff0c…

【RocketMQ】RocketMQ 5.0版本任意时刻延迟消息的实现原理浅析

文章目录意外发现设计方案时间轮定时消息存储具体实现流程图流程步骤意外发现 无意间从官方的最新的客户端代码中看到下面的Example&#xff1a; 感兴趣的可以看看这个介绍&#xff1a;https://rocketmq.apache.org/docs/featureBehavior/02delaymessage 生产者&#xff1a;…

【ES】Elasticsearch之数据类型

文章目录1、Mapping1.1 Mapping的作用1.2 Dynamic Mapping1.3 字段控制参数1.3.1 index1.3.2 Index Options1.3.3 null_value1.3.4 copy_to2、数据类型2.1 核心数据类型2.1.1 字符串类型2.1.2 数字类型2.1.3 日期类型2.1.3.1 date2.1.3.2 date_nanos2.1.4 布尔类型2.1.5 二进制…

java中使用protobuf总结

基本没怎么接触过java编程&#xff0c;别的团队发过来一个用java编写的存储pb的文件&#xff0c;让拆分和解析&#xff0c;硬着头皮做一下&#xff0c;在此将步骤做个记录&#xff1a;下载安装protobufhttps://github.com/protocolbuffers/protobuf/tags?afterv3.6.1.2编译pro…

Python大数据培训班特色优势及工作方向

Python大数据培训班有多个大数据培训班类型&#xff0c;同时也包括训练营、学徒班、就业班等。 具体班型&#xff1a; 大数据挖掘与人工智能&#xff08;大数据分析&#xff09;学徒班、大数据应用开发学徒班 大数据挖掘与人工智能&#xff08;大数据分析&…

网络安全从入门到精通:30天速成教程到底有多狠?你能坚持下来么?

毫无疑问&#xff0c;网络安全是当下最具潜力的编程方向之一。对于许多未曾涉足计算机编程的领域「小白」来说&#xff0c;深入地掌握网络安全看似是一件十分困难的事。至于一个月能不能学会网络安全&#xff0c;这个要看个人&#xff0c;对于时间管理不是很高的&#xff0c;肯…

DDOS攻击和CC攻击分别是什么?

CC攻击其实是DDOS攻击的一种。CC攻击的前身CC攻击的前身是一个名为Fatboy攻击程序&#xff0c;而之所以后来人们会成为CC&#xff0c;是因为DDOS攻击发展的初期阶段&#xff0c;绝大部分DDOS攻击都能被业界熟知的“黑洞”&#xff08;collapsar&#xff0c;一种安全防护产品&am…