当前位置: 首页 > news >正文

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&#xff0c;想到st表 其次思路&#xff0c;固定左端点&#xff0c;二分右端点&#xff0c;找gcd与区间长度相等的右端点&#xff0c;个…...

安装源代码 QT 4.8.7

在centos7.9.2009 (Core)操作系统上&#xff0c;安装qt 4.8.7 查看centos版本&#xff1a;cat /etc/centos-release 安装g&#xff1a;sudo yum install gcc gcc-c g版本查看&#xff08;gcc 版本 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)&#xff09;&#xff1a;g -v 先安装…...

PINN学习与实验之拟合sin(x)

首先给出数学上的知识。 1. 2. 3. 其次给出PINN最基础的理解与应用说明。 1.PINN中的MLP多层感知机的作用&#xff1f; 答&#xff1a;目的是用来拟合出我们需要的那个 常微分方程&#xff0c;即函数逼近器。 2.PINN中物理信息的作用&#xff1f; 答&#xff1a;用于约束MLP反向…...

Java中进制转换的两种方法你知道吗?

目录 十进制转其他进制 其他进制转十进制 实战&#xff1a; A进制转B进制 关于大数运算可以参考躲不掉的高精度计算&#xff0c;蓝桥杯必考_高精度算法在哪些比赛考_无忧#的博客-CSDN博客 十进制转其他进制 使用 Integer.toString(int n,int radix) 方法&#xff0c;该方法…...

Qemu搭建ARM Vexpress开发环境

Qemu搭建ARM Vexpress开发环境 文章目录 Qemu搭建ARM Vexpress开发环境Qemu简介QEMU安装前的准备工作QEMU 安装的两种方式通过网络在线安装源码编译安装源码获取QEMU依赖库安装编译安装 命令选项qemu的标准选项qemu显示选项网络属性相关选项kvm的网络模型 Ubuntu 双网卡&#x…...

JMM如何实现volatile写/读的内存语义

内存屏障类型表 StoreLoad Barriers是一个“全能型”的屏障&#xff0c;它同时具有其他3个屏障的效果。现代的多处理器大多支持该屏障&#xff08;其他类型的屏障不一定被所有处理器支持&#xff09;。执行该屏障开销会很昂贵&#xff0c;因为当前处理器通常要把写缓冲区中的数…...

Smali的使用技巧:快速定位Android应用程序中的关键代码

简述 Smali是一种Android应用程序的Dalvik虚拟机指令集汇编语言&#xff0c;用于编写和修改应用程序的DEX文件。通过编写和修改Smali代码&#xff0c;可以实现对Android应用程序的定制化和逆向分析。Smali语言类似于汇编语言&#xff0c;直接操作Dalvik虚拟机指令集。 Smali代…...

04_两种常见的网页反爬措施及应对方法

一、封禁IP地址反爬 1、应对思路: 理解这种反爬方法的含义:当我们用自己电脑的ip地址短时间,高频率访问某个具有此类反爬设置的网站,这种网站就会把我们的ip地址封禁,一般都是封24小时或者其他时间。解决方案:通过代理ip访问,这种方式只不过就是让你有了重新访问网页的…...

安装docker环境,并制作docker镜像

docker环境安装 进入linux虚机后&#xff0c;安装docker环境&#xff0c;制作docker镜像并运行&#xff0c;进入运行中的容器&#xff0c;查看挂载的日志或报告 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 这里仅说明如何使用服务器连接数据库并进行操作。 预处理语句就是可以输入变量的语句&#xff08;表现形式是有符号&#xff1a;&#xff1f;&#xff09;。需…...

JAVA使用HTTP代码示例模板

以下是一个使用Java发送HTTP请求的示例代码&#xff1a; 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 包&#xff0c;这里还得现学一下。 参考资料&#xff1a; 链接: 如何写一个vue组件发布到npm&#xff0c;包教包会&#xff0c;保姆级教学链接: vue组件发布npm最佳实践 按照上面的步骤&#xff0c;我通过 vue-sfc-rollup 生成了项目&#xff0c;…...

富人父母都教给孩子什么样的财富思维?

1.认清金钱的价值和作用&#xff0c;不要否认或忽视它对生活的影响。 2.提高社交能力&#xff0c;学会与不同的人沟通和合作&#xff0c;扩大人脉和资源。 3.理性消费&#xff0c;让钱在流动中产生效益&#xff0c;而不是囤积或浪费。 4.释放自己的欲望&#xff0c;追求自己想要…...

国内比较火的报表工具测评——Smartbi电子表格软件和Finereport

最近在学习BI软件&#xff0c;因为最近工作中需要开发报表&#xff0c;因此选用了国内市场比较热门的报表工具——Finereport和Spreadsheet进行学习。 BI软件经常会定期发布新的版本&#xff0c;增加新的功能模块&#xff0c;或者对现有功能进行增强&#xff0c;提升运行效率。…...

变电所运维云平台在电力系统中的应用

安科瑞虞佳豪 变电所运维云平台可以看做是电力监控系统的网络应用延伸&#xff0c;变电所运维云平台通过互联网&#xff0c;电力运维人员通过手机可以随时随地了解工厂配电系统的运行情况&#xff0c;做到无人值守或者少人值守&#xff0c;同时可以监测用能状况、漏电、线缆异…...

【51单片机】AT24C20数据帧(I2C总线)

&#x1f38a;专栏【51单片机】 &#x1f354;喜欢的诗句&#xff1a;更喜岷山千里雪 三军过后尽开颜。 &#x1f386;音乐分享【Love Story】 &#x1f970;大一同学小吉&#xff0c;欢迎并且感谢大家指出我的问题&#x1f970; 小吉先向大家道个歉&#xff0c;因为最近在期末…...

Python内置函数isinstance()函数介绍

Python内置函数isinstance()函数介绍 isinstance() 函数是Python内置函数&#xff0c;来判断一个对象是否是一个已知的类型&#xff0c;返回值为布尔值True或False。其语法格式&#xff1a; isinstance(object, classinfo) 【官方说法https://docs.python.org/zh-cn/3/librar…...

QxRibbon 知:搭建 CMake 构建环境

文章目录 前言安装 cmake问题处理qtcreator 检测 CMake 异常 参考资料 前言 高版本的 QtCreator 已经集成了 cmake 工具&#xff0c;并支持以 CMakelists.txt 文件作为工程开发项目。 https://www.qt.io/blog/2019/07/30/update-on-cmake-project-support-in-qt-creator 安装…...

Spring框架-面试题核心概念

目录 1.Spring框架的作用是什么&#xff1f; 2. 什么是DI&#xff1f; 3.什么是AOP&#xff1f; 4.Spring常用注解 5.Spring中的设计模式 6.Spring支持的几种bean的作用域 7.Spring中Bean的生命周期&#xff1f; 8.Spring中的事务管理 9.Spring中的依赖注入方式有几种 10.Sprin…...

Tomcat部署及优化

Tomcat部署及优化 一、Tomcat的介绍1.Tomcat核心组件2.Tomcat 功能组件结构3.Container 结构分析&#xff1a;4.Tomcat处理请求过程 二、Tomcat 部署步骤1.关闭防火墙&#xff0c;将安装 Tomcat 所需软件包传到/opt目录下2.安装JDK3.设置JDK环境变量4.编写一个java 简易的源代码…...

【AI应用开发】-Agent 思考时间那么长,怎么优化前端的用户体验?

Agent 思考时间那么长&#xff0c;怎么优化前端的用户体验&#xff1f; 文章目录Agent 思考时间那么长&#xff0c;怎么优化前端的用户体验&#xff1f;前言&#xff1a;让等待变成一种享受一、核心策略&#xff1a;透明化 可视化二、实现方案一&#xff1a;Stream 流式输出2.…...

深入浅出:图解程序控制、中断和DMA的工作原理与性能差异

深入浅出&#xff1a;图解程序控制、中断和DMA的工作原理与性能差异 想象你在一家餐厅点餐&#xff1a;第一种方式是服务员每隔30秒就来问你"好了吗"&#xff1b;第二种是你按服务铃&#xff0c;服务员立刻过来&#xff1b;第三种是厨房直接把菜送到你桌上——这正是…...

[OS] 非阻塞键盘输入检测(kbhit)在实时交互应用中的实现与优化

1. 为什么需要非阻塞键盘输入检测&#xff1f; 想象一下你在玩一个简单的终端游戏&#xff0c;比如贪吃蛇。如果游戏在每次等待你按键时都暂停执行&#xff0c;直到你按下某个键才继续&#xff0c;那体验会有多糟糕&#xff1f;这就是阻塞式输入的问题——程序会卡在输入等待环…...

SDMatte惊艳抠图效果展示:10组高难度玻璃/纱布/叶片实测对比图

SDMatte惊艳抠图效果展示&#xff1a;10组高难度玻璃/纱布/叶片实测对比图 1. 开篇&#xff1a;当AI遇见高难度抠图 在图像处理领域&#xff0c;抠图一直是个技术活。特别是遇到玻璃杯、薄纱窗帘、树叶这些半透明或边缘复杂的物体时&#xff0c;传统工具往往力不从心。今天我…...

Unsloth Docker部署详解:从零开始搭建训练环境

Unsloth Docker部署详解&#xff1a;从零开始搭建训练环境 1. 环境准备与Docker安装 1.1 系统要求检查 在开始之前&#xff0c;请确保你的系统满足以下基本要求&#xff1a; 64位Linux系统&#xff08;推荐Ubuntu 22.04&#xff09;NVIDIA显卡驱动已安装&#xff08;建议版…...

gte-base-zh场景应用:电商搜索与客服问答的语义匹配实战

gte-base-zh场景应用&#xff1a;电商搜索与客服问答的语义匹配实战 1. 电商场景中的语义匹配挑战 1.1 搜索不精准的痛点分析 在电商平台上&#xff0c;用户搜索"苹果手机"却看到水果苹果的图片&#xff0c;或者输入"轻薄笔记本"却返回游戏本&#xff0…...

FTDI FT2232H USB转JTAG实战指南:MPSSE配置与多设备调试

1. FT2232H与JTAG基础入门 第一次接触FT2232H这块芯片时&#xff0c;我完全被它的多功能性震惊了。这块小小的USB转接芯片不仅能处理UART通信&#xff0c;还能通过MPSSE引擎模拟JTAG、SPI、I2C等多种协议。对于嵌入式开发者来说&#xff0c;这简直就是调试神器。 FT2232H最吸引…...

工业自动化实战:三大品牌伺服驱动器IO与串口引脚接线全解析

1. 伺服驱动器接线基础&#xff1a;为什么IO与串口引脚如此重要 第一次接触伺服驱动器时&#xff0c;我被密密麻麻的接线端子吓到了。后来才发现&#xff0c;只要理解几个核心引脚的功能&#xff0c;剩下的都是举一反三。伺服驱动器的IO和串口引脚就像机器的"神经系统&quo…...

OpenClaw定时任务:利用GLM-4.7-Flash实现智能日程管理

OpenClaw定时任务&#xff1a;利用GLM-4.7-Flash实现智能日程管理 1. 为什么需要智能化的定时任务 记得上个月我连续错过了三个重要会议&#xff0c;原因很简单——手动设置的日历提醒被其他通知淹没了。这种经历让我开始寻找更智能的解决方案。传统定时工具只能机械地执行预…...

告别硬编码!用BAdI LE_SHP_TAB_CUST_ITEM给VL01N交货单加个自定义标签页(附完整代码)

告别硬编码&#xff01;用BAdI LE_SHP_TAB_CUST_ITEM实现交货单标签页优雅增强 在SAP SD模块的日常开发中&#xff0c;为外向交货单添加客户化信息是再常见不过的需求。但很多开发者习惯直接在标准程序里插入硬编码&#xff0c;这种看似快捷的方式往往会给后续维护埋下隐患。今…...