2940. 花坛的最小改变次数
Powered by:NEFU AB-IN
Link
文章目录
- 2940. 花坛的最小改变次数
- 题意
- 思路
- 代码
2940. 花坛的最小改变次数
-
题意
略
-
思路
首先需要区间查询gcd,想到st表
其次思路,固定左端点,二分右端点,找gcd与区间长度相等的右端点,个人是这么理解的:- 区间长度 mid - i + 1
- gcd
- 区间长度随mid增大而增大,gcd随mid增大而减小或不变
- 区间长度开始为1,gcd开始大于等于1,所以两者如果无限延伸一定有交点(可能不止一个),所以找到最右边的设为x,那么x往左的,都是gcd大于等于区间长度的,那么把这个区间放进答案数组
在答案数组里,按右端点排序,如果两个端点可以合并,如果某个区间左端点可以小于前哥区间右端点,说明可以一起改,统计改几次即可
-
代码
''' Author: NEFU AB-IN Date: 2023-06-09 18:00:12 FilePath: \LanQiao\2940\2940.py LastEditTime: 2023-06-09 20:09:28 ''' # import from sys import setrecursionlimit, stdin, stdout, exit from collections import Counter, deque from heapq import heapify, heappop, heappush, nlargest, nsmallest from bisect import bisect_left, bisect_right from datetime import datetime, timedelta from string import ascii_lowercase, ascii_uppercase from math import log, gcd, sqrt, fabs, ceil, floorclass sa:def __init__(self, x, y):self.x = xself.y = ydef __lt__(self, a):return self.y < a.y# Final N = int(2e5 + 10) M = 20 INF = int(2e9)# Define setrecursionlimit(INF) input = lambda: stdin.readline().rstrip("\r\n") # Remove when Mutiple data read = lambda: map(int, input().split()) LTN = lambda x: ord(x.upper()) - 65 # A -> 0 NTL = lambda x: ascii_uppercase[x] # 0 -> A# —————————————————————Division line —————————————————————— dp = [[0] * M for _ in range(N)] Log = [0] * N a = [0] * Ndef init():for j in range(M):i = 1while i + (1 << j) - 1 <= n:if j == 0:dp[i][j] = a[i]else:dp[i][j] = gcd(dp[i][j - 1], dp[i + (1 << (j - 1))][j - 1])i += 1for i in range(2, N):Log[i] = Log[i // 2] + 1def query(l, r):k = Log[r - l + 1]return gcd(dp[l][k], dp[r - (1 << k) + 1][k])n, = read() a[1:] = read()ans = [] init()for i in range(1, n + 1):l, r = i, nwhile l < r:mid = l + r + 1 >> 1if query(i, mid) >= mid - i + 1:l = midelse:r = mid - 1if query(i, l) == l - i + 1:ans.append(sa(i, l))cnt = 1 if len(ans) == 0:print(0) else:ans.sort()tmp = ans[0].yfor i in ans:if i.x > tmp:cnt += 1tmp = i.yprint(cnt)
相关文章:
2940. 花坛的最小改变次数
Powered by:NEFU AB-IN Link 文章目录 2940. 花坛的最小改变次数题意思路代码 2940. 花坛的最小改变次数 题意 略 思路 首先需要区间查询gcd,想到st表 其次思路,固定左端点,二分右端点,找gcd与区间长度相等的右端点,个…...
安装源代码 QT 4.8.7
在centos7.9.2009 (Core)操作系统上,安装qt 4.8.7 查看centos版本:cat /etc/centos-release 安装g:sudo yum install gcc gcc-c g版本查看(gcc 版本 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)):g -v 先安装…...
PINN学习与实验之拟合sin(x)
首先给出数学上的知识。 1. 2. 3. 其次给出PINN最基础的理解与应用说明。 1.PINN中的MLP多层感知机的作用? 答:目的是用来拟合出我们需要的那个 常微分方程,即函数逼近器。 2.PINN中物理信息的作用? 答:用于约束MLP反向…...
Java中进制转换的两种方法你知道吗?
目录 十进制转其他进制 其他进制转十进制 实战: A进制转B进制 关于大数运算可以参考躲不掉的高精度计算,蓝桥杯必考_高精度算法在哪些比赛考_无忧#的博客-CSDN博客 十进制转其他进制 使用 Integer.toString(int n,int radix) 方法,该方法…...
Qemu搭建ARM Vexpress开发环境
Qemu搭建ARM Vexpress开发环境 文章目录 Qemu搭建ARM Vexpress开发环境Qemu简介QEMU安装前的准备工作QEMU 安装的两种方式通过网络在线安装源码编译安装源码获取QEMU依赖库安装编译安装 命令选项qemu的标准选项qemu显示选项网络属性相关选项kvm的网络模型 Ubuntu 双网卡&#x…...
JMM如何实现volatile写/读的内存语义
内存屏障类型表 StoreLoad Barriers是一个“全能型”的屏障,它同时具有其他3个屏障的效果。现代的多处理器大多支持该屏障(其他类型的屏障不一定被所有处理器支持)。执行该屏障开销会很昂贵,因为当前处理器通常要把写缓冲区中的数…...
Smali的使用技巧:快速定位Android应用程序中的关键代码
简述 Smali是一种Android应用程序的Dalvik虚拟机指令集汇编语言,用于编写和修改应用程序的DEX文件。通过编写和修改Smali代码,可以实现对Android应用程序的定制化和逆向分析。Smali语言类似于汇编语言,直接操作Dalvik虚拟机指令集。 Smali代…...
04_两种常见的网页反爬措施及应对方法
一、封禁IP地址反爬 1、应对思路: 理解这种反爬方法的含义:当我们用自己电脑的ip地址短时间,高频率访问某个具有此类反爬设置的网站,这种网站就会把我们的ip地址封禁,一般都是封24小时或者其他时间。解决方案:通过代理ip访问,这种方式只不过就是让你有了重新访问网页的…...
安装docker环境,并制作docker镜像
docker环境安装 进入linux虚机后,安装docker环境,制作docker镜像并运行,进入运行中的容器,查看挂载的日志或报告 1.安装docker sudo curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 2.使用docker仓库安装…...
MySQL数据库 – node使用
1 MySQL查询对象 2 MySQL查询数组 3 mysql2库介绍使用 4 mysql2预处理语句 5 mysql2连接池使用 6 mysql2的Promi 这里仅说明如何使用服务器连接数据库并进行操作。 预处理语句就是可以输入变量的语句(表现形式是有符号:?)。需…...
JAVA使用HTTP代码示例模板
以下是一个使用Java发送HTTP请求的示例代码: java import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; public class HttpExample { public static void main(String[] args) { try…...
elementui tree 支持虚拟滚动和treeLine (下)
由于我之前没有发布过npm 包,这里还得现学一下。 参考资料: 链接: 如何写一个vue组件发布到npm,包教包会,保姆级教学链接: vue组件发布npm最佳实践 按照上面的步骤,我通过 vue-sfc-rollup 生成了项目,…...
富人父母都教给孩子什么样的财富思维?
1.认清金钱的价值和作用,不要否认或忽视它对生活的影响。 2.提高社交能力,学会与不同的人沟通和合作,扩大人脉和资源。 3.理性消费,让钱在流动中产生效益,而不是囤积或浪费。 4.释放自己的欲望,追求自己想要…...
国内比较火的报表工具测评——Smartbi电子表格软件和Finereport
最近在学习BI软件,因为最近工作中需要开发报表,因此选用了国内市场比较热门的报表工具——Finereport和Spreadsheet进行学习。 BI软件经常会定期发布新的版本,增加新的功能模块,或者对现有功能进行增强,提升运行效率。…...
变电所运维云平台在电力系统中的应用
安科瑞虞佳豪 变电所运维云平台可以看做是电力监控系统的网络应用延伸,变电所运维云平台通过互联网,电力运维人员通过手机可以随时随地了解工厂配电系统的运行情况,做到无人值守或者少人值守,同时可以监测用能状况、漏电、线缆异…...
【51单片机】AT24C20数据帧(I2C总线)
🎊专栏【51单片机】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【Love Story】 🥰大一同学小吉,欢迎并且感谢大家指出我的问题🥰 小吉先向大家道个歉,因为最近在期末…...
Python内置函数isinstance()函数介绍
Python内置函数isinstance()函数介绍 isinstance() 函数是Python内置函数,来判断一个对象是否是一个已知的类型,返回值为布尔值True或False。其语法格式: isinstance(object, classinfo) 【官方说法https://docs.python.org/zh-cn/3/librar…...
QxRibbon 知:搭建 CMake 构建环境
文章目录 前言安装 cmake问题处理qtcreator 检测 CMake 异常 参考资料 前言 高版本的 QtCreator 已经集成了 cmake 工具,并支持以 CMakelists.txt 文件作为工程开发项目。 https://www.qt.io/blog/2019/07/30/update-on-cmake-project-support-in-qt-creator 安装…...
Spring框架-面试题核心概念
目录 1.Spring框架的作用是什么? 2. 什么是DI? 3.什么是AOP? 4.Spring常用注解 5.Spring中的设计模式 6.Spring支持的几种bean的作用域 7.Spring中Bean的生命周期? 8.Spring中的事务管理 9.Spring中的依赖注入方式有几种 10.Sprin…...
Tomcat部署及优化
Tomcat部署及优化 一、Tomcat的介绍1.Tomcat核心组件2.Tomcat 功能组件结构3.Container 结构分析:4.Tomcat处理请求过程 二、Tomcat 部署步骤1.关闭防火墙,将安装 Tomcat 所需软件包传到/opt目录下2.安装JDK3.设置JDK环境变量4.编写一个java 简易的源代码…...
DICOM文件里除了图像,还藏了哪些信息?一份给开发者的隐私与元数据解析指南
DICOM文件里除了图像,还藏了哪些信息?一份给开发者的隐私与元数据解析指南 医疗影像数据是AI模型训练和医疗信息系统开发的重要基础,但许多开发者往往只关注图像像素本身,忽略了DICOM文件中蕴含的丰富元数据。这些元数据不仅包含关…...
从玩具车到智能体:用STC89C52给小车装上‘眼睛’和‘触角’的传感器融合实战
从玩具车到智能体:STC89C52多传感器融合的决策系统设计 当一辆普通的玩具车被赋予环境感知能力,它便开始了向智能体的进化。在这个项目中,我们使用STC89C52单片机作为"大脑",通过超声波模块和漫反射光电传感器构建了一…...
开发者个人网站搭建指南:从静态站点生成器到部署实战
1. 项目概述:一个为开发者量身定制的“数字家园” 在代码的海洋里泡久了,我们开发者总会遇到一个不大不小的痛点:如何高效、优雅地展示自己的技术栈、项目作品和个人思考?GitHub的README.md固然是标配,但它更像一份静态…...
英雄联盟玩家必备:5分钟快速上手LeagueAkari完整教程
英雄联盟玩家必备:5分钟快速上手LeagueAkari完整教程 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 还在为英雄联盟繁琐的操作流程…...
【信息科学与工程学】【数据科学】 第三篇 数学基础
数学知识体系:现代核心领域的深度架构 数学知识体系:历史脉络与逻辑结构总览表 时代/脉络 核心分支 核心概念/定理/理论 历史渊源/思想脉络 与其他领域的连接 数学哲学/元视角 1. 古典起源与奠基 (公元前 ~ 16世纪) 算术 自然数、素数、整除、欧几里…...
给MT7628路由器插上4G翅膀:OpenWRT下EC20模块保姆级配置与避坑指南
让老旧路由器重获新生:MT7628EC20打造高性价比4G物联网网关 在物联网和边缘计算快速发展的今天,稳定可靠的网络连接成为各类智能设备的基础需求。然而传统有线宽带在移动监控、车载设备、临时部署等场景中往往难以满足需求。本文将详细介绍如何利用MT762…...
Legacy iOS Kit终极指南:一站式拯救老旧iPhone/iPad的免费工具
Legacy iOS Kit终极指南:一站式拯救老旧iPhone/iPad的免费工具 【免费下载链接】Legacy-iOS-Kit An all-in-one tool to restore/downgrade, save SHSH blobs, jailbreak legacy iOS devices, and more 项目地址: https://gitcode.com/gh_mirrors/le/Legacy-iOS-K…...
Windows 11系统优化深度指南:使用Win11Debloat实现高效系统清理与性能提升
Windows 11系统优化深度指南:使用Win11Debloat实现高效系统清理与性能提升 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes …...
MySQL 如何正确实现“随机采样”
在开发英语学习或社交应用时,随机展示单词或消息是一个高频需求。然而,看似简单的“随机”逻辑,如果实现方式不当,会随着数据量的增长演变为系统瓶颈 。 1. 性能陷阱:order by rand() 最直观的写法是 select word from…...
爱普生SG-8201CJ石英可编程振荡器:精准频率控制专家首选
在电子设计中,晶振的选择往往是决定系统性能的关键因素之一。特别是在需要高精度和稳定性的应用中,选择一款合适的晶振尤为重要。今天,我们就来聊聊爱普生(Epson)的SG-8201CJ石英可编程振荡器,看看它如何成…...
