【组合数学算贡献+枚举】CF816div2 C. Monoblock

news2024/9/28 23:31:46

题解都看了半天才懂

Problem - C - Codeforces

题意:

 

思路:

一开始的思路是这样的:

 

只能说,想到了更换枚举对象,然后组合数学算贡献

也想到了修改操作与(a[i]和a[i-1])有关

但是我想的是枚举区间长度,然后对于每个长度len计算贡献

对于相邻的len-1和len,贡献能不能O(1)或O(logn)计算

事实上枚举的对象都错了

应该去枚举的是每个端点包含的所有区间的贡献

先去考虑怎么计算初始价值

如果a[i]!=a[i-1],那么加上i左边的所有端点1~i对应的所有区间贡献都,即+=i

否则总贡献就加上[i,i]这个区间对应的贡献,即+1

然后去考虑每次修改对总贡献的影响

Code:

#include <bits/stdc++.h>

#define int long long

using namespace std;

const int mxn=2e5+10;

int N,Q,x,y;
int a[mxn];

void solve(){
	cin>>N>>Q;
	for(int i=1;i<=N;i++) cin>>a[i];
	a[0]=-1;
	int ans=1,sum=1;
	for(int i=2;i<=N;i++){
		sum+=(a[i]==a[i-1])?1:i;
		ans+=sum;
	}
	while(Q--){
		cin>>x>>y;
		if(a[x]==y){
			cout<<ans<<'\n';
			continue;
		}
		if(y==a[x-1]){
			ans-=(x-1)*(N-x+1);
		}else if(a[x]==a[x-1]){
			ans+=(x-1)*(N-x+1);
		}
		
		if(y==a[x+1]){
			ans-=x*(N-x);
		}else if(a[x]==a[x+1]){
			ans+=x*(N-x);
		}
		a[x]=y;
		cout<<ans<<'\n';
	}
}
signed main(){
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	int __=1;//cin>>__;
	while(__--)solve();return 0;
}

 

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

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

相关文章

在Linux上搭建gitlab以及自动化编译部署的完整流程

一、安装gitlab 首先下载gitlab的安装包&#xff0c;地址如下&#xff1a; https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu/pool/bionic/main/g/gitlab-ce/ 然后安装下载的包即可&#xff0c;一般还需要安装openssh-server等依赖包&#xff0c;在安装gitlab包之前可以…

【MongoDB】二、MongoDB数据库的基本操作

【MongoDB】二、MongoDB数据库的基本操作 实验目的实验内容任务一&#xff1a;&#xff08;1&#xff09;创建数据库newdb&#xff08;2&#xff09;在数据库newdb中创建集合mycollection&#xff08;3&#xff09;在集合mycollection中插入以下数据&#xff1a;&#xff08;4&…

如何安装 Auto GPT 4:分步指南

动动发财的小手&#xff0c;点个赞吧&#xff01; 您对尝试最新最好的文本生成技术感到兴奋吗&#xff1f; Auto GPT 4 因其令人印象深刻的功能而广为人知&#xff0c;但启动和运行它似乎令人望而生畏。幸运的是&#xff0c;我们在这里[1]提供安装 Auto GPT 4 的分步指南。 1. …

快手sig3 48位-unidbg

研究某手app的小伙伴都了解sig3有两个版本&#xff0c;低版本的是42位&#xff0c;高版本的48位。 废话不多说&#xff0c;先抓个包&#xff1a; 上一个当前最新版本的48位sig3&#xff0c;我们以搜索接口为例&#xff0c;效果如图&#xff1a; 在上面可以看到使用unidbg的方式…

【深度学习】计算机视觉(11)——Faster RCNN(工具篇)

文章目录 1 gcc编译报错1.1 错误提示“ld: cannot find -lm/-lc/-lpthread”1.2 解决方法&#xff1a;安装glibc工具1.3 解决方法&#xff1a;修改sources.list1.4 解决方法&#xff1a;软连接 2 Permission denied3 运行报错3.1 module tensorflow has no attribute 3.2 No mo…

火山 xl,xa,xg,xk,xh,xm 六神签名参数

火山 xl,xa,xg,xk,xh,xm 六神签名参数 27/100 发布文章 weixin_38819889 未选择任何文件 new 纯属技术研究&#xff0c;如有侵权&#xff0c;请联系删除。 抓个包&#xff0c;在火山最新的15.6版本中&#xff0c;已经新增加了2个参数x-helios&#xff0c;x-medusa 前段时间do…

IDEA Java 第一个mybatis入门程序

文章目录 准备mysql 开始新建maven项目maven添加引用mybatis配置文件工具类创建实例类添加mappermappermapper.xml 测试类 发现问题org.apache.ibatis.binding.BindingException: Type interface com.cpyy.mapper.UserMapper is not known to the MapperRegistry.The error may…

[计算机图形学]动画与模拟:欧拉方法、刚体与流体(前瞻预习/复习回顾)

一、前言 这是本专栏的倒数第二篇文章了&#xff0c;为什么不是最后一篇&#xff1f;因为我要单独写一篇总结哈哈&#xff0c;不管怎么说&#xff0c;从今年的3.13的MVP变换开始写&#xff0c;写到现在&#xff0c;也是一个很大的工程了&#xff0c;我很高兴能在大二下学期的期…

使用ffmpeg拼接两张图片

最近在工作中遇到了一个需求&#xff0c;就是需要将两张图片拼接在一起&#xff0c;作为一个封面图。如果只是临时拼接一张&#xff0c;我们可以只用photoshop之类的图片编辑工具&#xff0c;将两张图片拼接在一起。而我们的需要是需要实现自动化&#xff0c;由于之前使用过ffm…

KALI入门到高级【第六章】

预计更新第一章 入门 1.1 什么是Kali Linux&#xff1f; 1.2 安装Kali Linux 1.3 Kali Linux桌面环境介绍 1.4 基本命令和工具 第二章 信息收集 1.1 网络扫描 1.2 端口扫描 1.3 漏洞扫描 1.4 社交工程学 第三章 攻击和渗透测试 1.1 密码破解 1.2 暴力破解 1.3 漏洞利用 1.4 特…

Linux网络编程:基础知识

1. MAC地址和IP地址 IPV4&#xff1a;32位&#xff1b;8B 4 32bit IPV6:128位&#xff1b;4B 32 128bit&#xff0c;图中IPV6补全为&#xff1a;fe80:0000:0000:0000:6e3f:77c3:ceca:b5a7 MAC&#xff1a;48位; 4B 12 48bit (图中IPV6和MAC地址使用的16进制表示法&a…

QTDAY4

定时闹钟 widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTimer> //定时器类 #include <QTime> //时间类 #include <QTimerEvent> //定时器事件类 #include <QDateTime> //日期时间类 #include <QText…

052、牛客网算法面试必刷TOP101--二分查找/排序(230503)

文章目录 前言二分查找/排序1、BM17 二分查找-I2、BM18 二维数组中的查找3、BM19 寻找峰值4、BM20 数组中的逆序对5、BM21 旋转数组的最小数字6、BM22 比较版本号 总结 前言 本文记录自己刷&#xff0c;牛客网的面试必刷TOP101&#xff0c;地址&#xff1a;面试必刷TOP101–二…

【GAMES101】05 Rasterization(Triangles)

光栅化过程&#xff1a;将一系列变换后的三角形转换为像素的过程。 三角形在图形学中得到很多的应用。 最基础的多边形&#xff08;边数最少&#xff09;。任何多边形都可以拆成三角形。性质&#xff1a;三角形内部一定是平面的。三角形内外部定义非常清楚。定义三个顶点后&a…

libfacedetection 人脸检测库 检测速度慢的问题

目录 一、libfacedetection 性能介绍 英特尔CPU 使用AVX2指令集 使用AVX512指令集 嵌入式设备 二、加速检测速度 libfacedetetion的前向推理速度很快的原因 使用axv2加速指令 一、libfacedetection 性能介绍 在上一篇文章中&#xff0c;我发现使用摄像头检测&#xff0c;构…

C++入门——内联函数的介绍

目录 前言 内联函数 1. 概念 2.特性 前言 今天小编给大家带来的是内联函数的介绍&#xff0c;大家可能之前没有听过内联函数这个名词&#xff0c;那么今天就和小编一起认识一下这个朋友吧。 内联函数 我们每次在调用函数时都会开辟一个函数栈帧&#xff0c;那么过度的函数…

上海联影面试(部分)(未完全解析)

一面 Spring Boot为什么可以自启动&#xff0c;且变成一个web项目&#xff1f;本地连不上网&#xff0c;Maven缺一个jar包&#xff0c;怎么解决&#xff1f;linux用什么命令找到占用指定端口的进程&#xff0c;并杀掉&#xff1f;Answer by new bing: 查找被占用端口的PID&am…

单载波传输与多载波传输

一、单载波传输 1. 单载波基带传输&#xff1a;系统模型 信道h(t)的带宽为W T&#xff1a;符号周期&#xff0c;数据速率&#xff1a;R1/T&#xff0c;每秒传输R个符号&#xff0c;单位&#xff1a;Hz z(t)&#xff1a;加性噪声 g(t)带宽有限&#xff0c;时间无限&#xff0c…

AI 图像生成工具可以取代摄影师吗?让我们从原理开始聊聊

AI 的风已经吹向了每一个人&#xff0c;在这篇文章中我们一起来聊一聊 AI 图像生成的原理以及未来。 作为一个非职业的摄影爱好者&#xff0c;我通常会在 Instagram 上面搜罗各种各样的优质图片并将其放进我的收藏夹。其中&#xff0c;有一位我关注了很久的德国摄影师&#xff…