Y1——ST表
知识点
ST表
只能询问,不能修改
ST表的预处理:
使用了DP的思想,设a是要求区间最值的数列,f(i,j)表示从第i个数起连续2^j个数中的最大值
状态转移方程
f [ i , j ]=max( f [ i , j-1 ], f [ i + 2 ^ j-1,j - 1])
建立ST表
void build(){//建立ST表,时间复杂度O(nlogn)
for(int i=1;i<=n;i++){
f[i][0]=a[i];
}
for(int j=1;(1<<j)<=n;j++){//枚举区间长度
for(int i=1;i+(i<<j)-1<=n;i++){//枚举区间左端点
f[i][j]=max(f[i][j-1],f[i+(1<<j-1)][j-1]);
}
}
}
查询区间信息
int query(int l,int r)//查询区间[l,r]的信息(最大值、最小值……)
int k=log2(r-l+1);
return max(f[l][k],f[r-(1<<k)+1][k]);
}
题题题题
平衡的阵容
题目描述
每天,农夫John的n(1≤n≤5×10^4)头牛总是按同一序列排队。有一天, John 决定让一些牛们玩一场飞盘比赛。他准备找一群在队列中位置连续的牛来进行比赛。但是为了避免水平悬殊,牛的身高不应该相差太大。JohnJohn 准备了q(1≤q≤1.8×10^5)个可能的牛的选择和所有牛的身高hi(1≤hi≤106,1≤i≤n)hi(1≤hi≤106,1≤i≤n)。他想知道每一组里面最高和最低的牛的身高差。
输入格式
第一行两个数n,q。接下来n行,每行一个数hi。再接下来q行,每行两个整数a和b,表示询问第a头牛到第b头牛里的最高和最低的牛的身高差。
输出格式
输出共q行,对于每一组询问,输出每一组中最高和最低的牛的身高差。
样例输入
6 3
1
7
3
4
2
5
1 5
4 6
2 2
样例输出
6
3
0
代码
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
const int N=5e4+5;
int n,q,a,b,h[N],f[N][20],f1[N][20];
void build(){//建立ST表,时间复杂度O(nlogn) for(int i=1;i<=n;i++){f[i][0]=h[i];f1[i][0]=h[i];}for(int j=1;(1<<j)<=n;j++){//枚举区间长度 for(int i=1;i+(1<<j)-1<=n;i++){//枚举区间左端点 f[i][j]=max(f[i][j-1],f[i+(1<<j-1)][j-1]); f1[i][j]=min(f1[i][j-1],f1[i+(1<<j-1)][j-1]);} }
}
int query(int l,int r){//查询区间[l,r]的信息(最大值、最小值……) int k=log2(r-l+1);int maxx=max(f[l][k],f[r-(1<<k)+1][k]);int minn=min(f1[l][k],f1[r-(1<<k)+1][k]);return maxx-minn;
}
int main(){ios::sync_with_stdio(false);cin.tie(0),cout.tie(0); cin>>n>>q;for(int i=1;i<=n;i++){cin>>h[i];} build();for(int i=1;i<=q;i++){cin>>a>>b;cout<<query(a,b)<<"\n";}return 0;
}
GCD
时间限制:2秒 内存限制:128M
题目描述
给你一个 N(N≤100,000)N(N≤100,000) 个整数序列:a1,⋯,an(0<ai≤1000,000,000)a1,⋯,an(0<ai≤1000,000,000)。 有 Q(Q≤100,000)Q(Q≤100,000) 个查询。 对于每个查询 l,rl,r,您必须计算 gcd(al,,al+1,⋯,ar)gcd(al,,al+1,⋯,ar) 并计算对的数量(l′,r′)(1≤l<r≤N)(l′,r′)(1≤l<r≤N),使得 gcd(al′,al′+1,⋯,ar′)gcd(al′,al′+1,⋯,ar′) 等于 gcd(al,al+1,⋯,ar)gcd(al,al+1,⋯,ar)。
输入描述
第一行输入包含一个数字TT,代表你需要解决的测试用例的数量。
每个 casecase 的第一行包含一个数字N(N≤100,000)N(N≤100,000),表示整数的数量。
第二行包含 NN 个整数,a1,⋯,an(0<ai≤1000,000,000)a1,⋯,an(0<ai≤1000,000,000)。
第三行包含一个数字Q(Q≤100,000)Q(Q≤100,000),表示查询的数量。
对于接下来的 QQ 行,第 ii 行包含两个数字 ,代表 li,rili,ri,代表第 ii 个查询。
输出描述
对于每个casecase,需要在开头输出“Case #t:”。(不带引号,tt表示测试用例的编号,从11开始)。
对于每个查询,您需要在一行中输出两个数字。 第一个数字代表 gcd(al,al+1,⋯,ar)gcd(al,al+1,⋯,ar),第二个数字代表对 (l′,r′)(l′,r′) 的数量,使得 gcd(al′,al′+1,⋯,ar′)gcd(al′,al′+1,⋯,ar′) 等于 gcd(al,al+1,⋯,ar)gcd(al,al+1,⋯,ar)。
样例输入
1
5
1 2 4 6 7
4
1 5
2 4
3 4
4 4
样例输出
Case #1:
1 8
2 4
2 4
6 1
代码
#include<iostream>
#include<cstdio>
#include<cmath>
#include<map>
#include<algorithm>
using namespace std;
const int N=1e5+5;
int n,t,q,a[N],f[N][19],L[N],R[N];
map<int,long long> mp;
void build(){//建立ST表,时间复杂度O(nlogn) for(int i=1;i<=n;i++){f[i][0]=a[i];}for(int j=1;(1<<j)<=n;j++){//枚举区间长度 for(int i=1;i+(1<<j)-1<=n;i++){//枚举区间左端点 f[i][j]=__gcd(f[i][j-1],f[i+(1<<j-1)][j-1]); } }
}
int query(int l,int r){//查询区间[l,r]的信息(最大值、最小值……) int k=log2(r-l+1);return __gcd(f[l][k],f[r-(1<<k)+1][k]);
}
int main(){ios::sync_with_stdio(false);cin.tie(0),cout.tie(0); cin>>t;for(int ca=1;ca<=t;ca++){mp.clear();cout<<"Case #"<<ca<<":"<<"\n";cin>>n;for(int i=1;i<=n;i++){cin>>a[i];}build();cin>>q;for(int i=1;i<=q;i++){cin>>L[i]>>R[i];mp[query(L[i],R[i])]=0;}for(int L=1;L<=n;L++){int R=L;while(R<=n){int l=R,r=n,d1=query(L,R);while(l<r){int mid=l+r+1>>1;if(query(L,mid)==d1){l=mid;}else{r=mid-1;}}if(mp.count(d1)){mp[d1]+=l-R+1;}R=l+1;}}for(int i=1;i<=q;i++){int tmp=query(L[i],R[i]);cout<<tmp<<" "<<mp[tmp]<<"\n";}}return 0;
}
相关文章:
Y1——ST表
知识点 ST表 只能询问,不能修改 ST表的预处理: 使用了DP的思想,设a是要求区间最值的数列,f(i,j)表示从第i个数起连续2^j个数中的最大值 状态转移方程 f [ i , j ]max( f [ i , j-1 ], f [ i 2 ^ j-1,j - 1]) 建立ST表 vo…...
Python Cookbook-5.14 给字典类型增加排名功能
任务 你需要用字典存储一些键和“分数”的映射关系。你经常需要以自然顺序(即以分数的升序)访问键和分数值,并能够根据那个顺序检查一个键的排名。对这个问题,用dict 似乎不太合适。 解决方案 我们可以使用 dict 的子类,根据需要增加或者重…...
第二十二: go与k8s、docker相关编写dockerfile
实战演示k8s部署go服务,实现滚动更新、重新创建、蓝绿部署、金丝雀发布-CSDN博客 go 编写k8s命令: 怎么在go语言中编写k8s命令 • Worktile社区 k8s中如何使用go 在K8s编程中如何使用Go-阿里云开发者社区 go build - o : -o:指定输出文件…...
Servlet、HTTP与Spring Boot Web全面解析与整合指南
目录 第一部分:HTTP协议与Servlet基础 1. HTTP协议核心知识 2. Servlet核心机制 第二部分:Spring Boot Web深度整合 1. Spring Boot Web架构 2. 创建Spring Boot Web应用 3. 控制器开发实践 4. 请求与响应处理 第三部分:高级特性与最…...
事件过滤器
1.简介 事件过滤器是指在程序分发到event事件之前进行的一次高级拦截。 2.使用步骤 给控件安装事件过滤器重写eventfilter事件 3.具体实现 3.1安装事件过滤器 代码: //给label1安装事件过滤器ui->label->installEventFilter(this); 3.2重写eventfilter…...
AI识别与雾炮联动:工地尘雾治理新途径
利用视觉分析的AI识别用于设备联动雾炮方案 背景 在建筑工地场景中,人工操作、机械作业以及环境因素常常导致局部出现大量尘雾。传统监管方式存在诸多弊端,如效率低、资源分散、监控功能单一、人力效率低等,难以完美适配现代工程需求。例如…...
Kubernetes nodeName Manual Scheduling practice (K8S节点名称绑定以及手工调度)
Manual Scheduling 在 Kubernetes 中,手动调度框架允许您将 Pod 分配到特定节点,而无需依赖默认调度器。这对于测试、调试或处理特定工作负载非常有用。您可以通过在 Pod 的规范中设置 nodeName 字段来实现手动调度。以下是一个示例: apiVe…...
Nacos注册中心
Nacos注册中心 本地环境搭建 准备挂载的文件夹 在拉取 Nacos 镜像之前,在 E:\docker 文件夹下,创建一个 /nacos 文件夹,等会运行容器时,用于将 Nacos 容器中的配置文件、持久化文件挂载出来,防止容器重启时数据丢失…...
除了 `task_type=“SEQ_CLS“`(序列分类),还有CAUSAL_LM,QUESTION_ANS
task_type="SEQ_CLS"是什么意思:QUESTION_ANS 我是qwen,不同模型是不一样的 SEQ_CLS, SEQ_2_SEQ_LM, CAUSAL_LM, TOKEN_CLS, QUESTION_ANS, FEATURE_EXTRACTION. task_type="SEQ_CLS" 通常用于自然语言处理(NLP)任务中,SEQ_CLS 是 Sequence Classif…...
二战蓝桥杯所感
🌴 前言 今天是2025年4月12日,第十六届蓝桥杯结束,作为二战的老手,心中还是颇有不甘的。一方面,今年的题目比去年简单很多,另一方面我感觉并没有把能拿的分都拿到手,这是我觉得最遗憾的地方。不…...
深度解析自动化工作流工具:n8n 与 Dify 的对比分析
深度解析自动化工作流工具:n8n 与 Dify 的对比分析 随着企业数字化转型的加速,自动化工具在提高工作效率、降低人工成本方面扮演着越来越重要的角色。市面上有多种自动化工作流工具可供选择,其中 n8n 和 Dify 是两个备受关注的开源和商业产品…...
深度剖析Python中的生成器:高效迭代的秘密武器
深度剖析Python中的生成器:高效迭代的秘密武器 在Python的编程世界里,生成器(Generator)是一个强大而又迷人的特性,它为开发者提供了一种高效处理大量数据的方式,尤其在涉及到迭代操作时,能显著…...
Mac 下载 PicGo 的踩坑指南
Mac 下载 PicGo 的踩坑指南 一、安装问题 下载地址:https://github.com/Molunerfinn/PicGo/releases 下载之后直接安装即可,此时打开会报错:Picgo.app 文件已损坏,您应该将它移到废纸篓。 这是因为 macOS 为了保护用户不受恶意…...
网页布局汇总
1. 盒模型 容器大小 内容大小 内边距(padding) 边框大小 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0">&l…...
基于 Maven 构建的 Thingsboard 3.8.1 项目结构
一、生命周期(Lifecycle) Maven 的生命周期定义了项目构建和部署的各个阶段,图中列出了标准的生命周期阶段: clean:清理项目,删除之前构建生成的临时文件和输出文件。validate:验证项目配置是否…...
MySQL 中为产品添加灵活的自定义属性(如 color/size)
方案 1:EAV 模型(最灵活但较复杂) 适合需要无限扩展自定义属性的场景 -- 产品表 CREATE TABLE products (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(100),price DECIMAL(10,2) );-- 属性名表 CREATE TABLE attributes (id INT PRIMA…...
C++语言程序设计——02 变量与数据类型
目录 一、变量与数据类型(一)变量的数据类型(二)变量命名规则(三)定义变量(四)变量赋值(五)查看数据类型 二、ASCII码三、进制表示与转换(一&…...
第三篇:Python数据结构深度解析与工程实践
第一章:列表与字典 1.1 列表的工程级应用 1.1.1 动态数组实现机制 Python列表底层采用动态数组结构,初始分配8个元素空间,当空间不足时按0,4,8,16,25,35...的公式扩容,每次扩容增加约12.5%的容量 通过sys模块可验证扩容过程&a…...
dcsdsds
我将为您在页面顶部添加欢迎内容,同时保持整体风格的一致性。以下是修改后的代码,主要修改了模板部分和对应的样式: vue 复制 <template><div class"main-wrapper"><!-- 新增欢迎部分 --><div class"…...
Vitis: 使用自定义IP时 Makefile错误 导致编译报错
参考文章: 【小梅哥FPGA】 Vitis开发中自定义IP的Makefile路径问题解决方案 Vitis IDE自定义IP Makefile错误(arm-xilinx-eabi-gcc.exe: error: *.c: Invalid argument)解决方法 Vitis 使用自定义IP时: Makefile 文件里的语句是需要修改的,…...
应急响应练习靶机-web1
1)背景 小李在值守的过程中,发现有CPU占用飙升,出于胆子小,就立刻将服务器关机,这是他的服务器系统,请你找出以下内容,并作为通关条件: 1.攻击者的shell密码 2.攻击者的IP地址 3.攻击…...
cdp-(Chrome DevTools Protocol) browserscan检测原理逆向分析
https://www.browserscan.net/zh/bot-detection 首先,打开devtools后访问网址,检测结果网页显示红色Robot,标签插入位置,确定断点位置可以hook该方法,也可以使用插件等方式找到这个位置,本篇不讨论. Robot标签是通过insertBefore插入的. 再往上追栈可以发现一个32长度数组,里面…...
MCU刷写——Hex文件格式详解及Python代码
工作之余来写写关于MCU的Bootloader刷写的相关知识,以免忘记。今天就来聊聊Hex这种文件的格式,我是分享人M哥,目前从事车载控制器的软件开发及测试工作。 学习过程中如有任何疑问,可底下评论! 如果觉得文章内容在工作学习中有帮助到你,麻烦点赞收藏评论+关注走一波!感谢…...
SpringBoot(一)
快速入门 1.概念 SpringBoot 简单、快速地创建一个独立的、生产级别的 Spring 应用(说明SpringBoot底层是Spring) 大多数 SpringBoot 应用只需要编写少量配置即可快速整合 Spring 平台以及第三方技术 特性: 快速创建独立 Spring 应用 SSM&…...
学习Mysql对库和表的操作以及对数据的操作
对库操作 SHOW DATABASES;可以查看数据库服务器中有哪些数据库(注意databases最后的s不要忘记) SELECT DATABASE();可以查看到目前是在哪个数据库下。 CREATE DATABASE 库名;可以创建一个数据库 DROP DATABASE 库名;可以删除一个数据库 USE 库名;切换到当前数据库 对表操…...
微软office填表无法打勾✔,解决办法!
最近在使用office 填表的时候,碰到需要在选择框中打勾的情况,但是找了半天发现找不到打勾的按钮。为此,记录该问题解决办法: 以这个界面为例,如果点击打勾发现无法✔。 这里因为office和wps的编写不一样,所…...
Python实现链接KS3,并批量下载KS3文件数据到本地
前言 本文是该专栏的第56篇,后面会持续分享python的各种干货知识,值得关注。 在本专栏的上篇文章《Python实现链接KS3,并将文件数据批量上传到KS3》中,笔者有详细介绍基于Python,实现链接KS3并将文件数据批量上传。而本文,笔者将基于在上一篇文章的基础之上,实现链接KS…...
构建智能期货交易策略分析应用:MCP与AI的无缝集成
引言 随着金融科技的快速发展,数据驱动的交易决策已成为期货交易领域的重要趋势。本文将深入探讨一个结合了Model Content Protocol (MCP)和AI技术的期货交易策略分析应用——Futures MCP。该应用不仅提供了丰富的技术分析工具,还通过MCP协议与大型语言…...
区块链点燃游戏行业新未来——技术变革与实践指南
区块链点燃游戏行业新未来——技术变革与实践指南 在数字时代,游戏行业无疑是创新的热土。从简单像素风的街机游戏到沉浸式的虚拟现实,我们见证了技术如何一步步塑造游戏的样貌。然而,在传统游戏模式中,玩家权益往往无法得到保障…...
Jmeter中如何实现关联?
在JMeter中实现关联(Correlation)是性能测试中处理动态数据(如Session ID、Token、动态参数等)的核心技能。以下是详细操作指南,涵盖原理、工具和实战示例: 一、关联的本质与场景 作用:从服务器响应中提取动态数据,供后续请求复用(如登录Token、订单ID、验证码等)。 …...
在MATLAB中使用MPI进行并行编程
在MATLAB中使用MPI进行并行编程 MATLAB支持通过MPI (Message Passing Interface) 进行并行编程,这通常通过Parallel Computing Toolbox和MATLAB Parallel Server实现。以下是使用MPI进行并行编程的基本方法: 基本设置 确保安装了必要的工具箱ÿ…...
15.【.NET 8 实战--孢子记账--从单体到微服务--转向微服务】--单体转微服务--如何拆分单体
单体应用(Monolithic Application)是指将所有功能模块集中在一个代码库中构建的应用程序。它通常是一个完整的、不可分割的整体,所有模块共享相同的运行环境和数据库。这种架构开发初期较为简单,部署也较为方便,但随着…...
C++: char类型既不是signed char也不是unsigned char
对于 int, short, long, long long 类型, 增加 signed, 类型不变。 对于 char 类型, 增加 signed, 类型变了。 char 既不是 signed char, 也不是 unsigned char。 虽然 char 的取值范围, 一定是࿱…...
测试第二课-------测试分类
作者前言 🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂 🎂 作者介绍: 🎂🎂 🎂 🎉🎉🎉…...
16.【.NET 8 实战--孢子记账--从单体到微服务--转向微服务】--单体转微服务--微服务的部署与运维
部署与运维是微服务架构成功实施的关键环节。一个良好的部署与运维体系能够保障微服务的高可用性、可扩展性和可靠性。在这一阶段,重点包括微服务的容器化与编排、API 网关的实现以及日志与监控体系的建设。 一、容器化与编排 1.1 使用 Docker 容器化微服务 容器…...
什么是供应链金融
供应链金融(Supply Chain Finance) 是一种基于供应链上下游真实交易场景的金融服务模式,通过整合物流、信息流、资金流和数据流,为核心企业及其上下游中小企业提供灵活、高效的融资解决方案。其核心目标是优化供应链资金周转效率&…...
个人博客系统后端 - 注册登录功能实现指南
一、功能概述 个人博客系统的注册登录功能包括: 用户注册:新用户可以通过提供用户名、密码、邮箱等信息创建账号用户登录:已注册用户可以通过用户名和密码进行身份验证,获取JWT令牌身份验证:使用JWT令牌访问需要认证…...
微信小程序运行机制详解
微信小程序运行机制详解 微信小程序是介于 Web 和原生 App 之间的一种应用形态,具有无需安装、用完即走、体验流畅的特点。本文将从架构层面、运行环境、通信机制等方面深入剖析微信小程序的运行机制。 一、小程序运行架构概览 微信小程序采用双线程模型ÿ…...
GGML源码逐行调试(中)
目录 前言1. 简述2. 加载模型超参数3. 加载词汇表4. 初始化计算上下文5. 初始化计算后端6. 创建模型张量7. 分配缓冲区8. 加载模型权重结语下载链接参考 前言 学习 UP 主 比飞鸟贵重的多_HKL 的 GGML源码逐行调试 视频,记录下个人学习笔记,仅供自己参考&…...
高阶函数/柯里化/纯函数
本篇文章主要是介绍一下标题里面的概念,在面试的时候经常文档,结合阅读到的资料,结合本人的个人见解出品了该文章,如有写的不好的地方或理解有误的,还望阁下多多指教。 1、高阶函数 什么是高阶函数? 接受…...
docker部署scylladb
创建存储数据的目录和配置目录 mkdir -p /root/docker/scylla/data/data /root/docker/scylla/data/commitlog /root/docker/scylla/data/hints /root/docker/scylla/data/view_hints /root/docker/scylla/conf快速启动拷贝配置文件 docker run -d \--name scylla \scylladb/…...
Python创意:AI图像生成
1. 基本概念 AI 图像生成通常基于以下几种方法: 一.生成对抗网络 (GAN) 生成对抗网络(GAN,Generative Adversarial Network)是一种深度学习框架,主要用于生成新的、类似于训练数据的样本。自2014年由Ian Goodfellow及…...
十九、UDP编程和IO多路复用
1、UDP编程 服务端: #include<stdio.h> #include <arpa/inet.h> #include<stdlib.h> #include<string.h> #include <sys/types.h> /* See NOTES */ #include <sys/socket.h> #include <pthread.h> #include &l…...
【MySQL】复合查询
文章目录 👉基本查询回顾👈select 子查询 👉多表查询👈👉自连接👈👉子查询👈单行子查询多行子查询多列子查询在from子句中使用子查询合并查询 👉总结👈 &…...
并发编程--条件量与死锁及其解决方案
并发编程–条件量与死锁及其解决方案 文章目录 并发编程--条件量与死锁及其解决方案1.条件量1.1条件量基本概念1.2条件量的使用 2. 死锁 1.条件量 1.1条件量基本概念 在许多场合中,程序的执行通常需要满足一定的条件,条件不成熟的时候,任务…...
【NLP解析】多头注意力+掩码机制+位置编码:Transformer三大核心技术详解
目录 多头注意力:让模型化身“多面手” 技术细节:多头注意力如何计算? 实际应用:多头注意力在Transformer中的威力 为什么说多头是“非线性组合”? 实验对比:多头 vs 单头 进阶思考:如何设计更高…...
#关于数据库中的时间存储
✅ 一、是否根据“机器当前时区”得到本地时间再转 UTC? 结论:是的,但仅对 TIMESTAMP 字段生效。 数据库(如 MySQL)在插入 TIMESTAMP 类型数据时: 使用当前会话的时区(默认跟随系统时区&#…...
C# --- yield关键字 和 Lazy Execution
C# --- yield关键字 和 Lazy Execution 延迟执行(Lazy Execution)yield关键字lazy execution与yield的关系LINQ 和 lazy exectuion 延迟执行(Lazy Execution) 延迟执行指操作不会立即计算结果,而是在实际需要数据时才执…...
Qt报错dependent ‘..\..\..\..\..\..\xxxx\QMainWindow‘ 或者 QtCore\QObject not exist
Qt5.15编译项目报错如下: dependent ‘..\..\..\..\..\..\Qt\5.15.2\msvc2019_64\include\QtW...
彻底掌握 XMLHttpRequest(XHR):前端通信的基石
一、XHR 的起源与演进 1.1 技术背景 XHR(XMLHttpRequest)是现代 Web 应用的异步通信基石,最早由微软在 IE5 中通过 ActiveXObject 引入,后来被 Mozilla 推广并成为 W3C 的标准接口。XHR 的出现推动了 AJAX(Asynchrono…...