hdu 5875 Function 线段树||RMQ

使用AI编写测试用例——详细教程 现阶段AI还不能完全替代人工测试用例编写,但如果把AI当做一个提高效率的工具,它将会是一个很强大的辅助。 阅读详情

http://acm.hdu.edu.cn/showproblem.php?pid=5875

因为取膜一个比自己大的数不会改变,所以每次都找第一个比当前值大的数的位置,用线段树来实现,据说使用RMQ加二分会更优雅,常数小

线段树查询函数,线段树记录区间最小值,如果比查询元素小,则继续向下进行,每次优先递归左半部,找到位置就可以全部return掉了

#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+7;
int seg[maxn*4];
int a[maxn];
void pushup(int node)
{
    seg[node]=min(seg[node<<1],seg[node<<1|1]);
    return ;
}
void build(int l,int r,int node)
{
    if(l==r)
    {
        seg[node]=a[l];
        return ;
    }
    int m=(l+r)>>1;
    build(l,m,node<<1);
    build(m+1,r,node<<1|1);
    pushup(node);
}
int flog=0,index,v;
void query(int x,int le,int ri,int l,int r,int node)
{
    if(flog)
        return ;
    if(l==r)
    {
        index=l;
        flog=1;
        return ;
    }
  //  cout<<l<<" "<<r<<endl;
    int m=(l+r)>>1;
    if(m>=le&&seg[node<<1]<=x)
    query(x,le,ri,l,m,node<<1);
    if(m<ri&&seg[node<<1|1]<=x)
    query(x,le,ri,m+1,r,node<<1|1);
}
int main()
{
    int T,n,i;
    cin>>T;
    while(T--)
    {
        cin>>n;
        for(i=1;i<=n;i++)
        {
            scanf("%d",&a[i]);
        }
        build(1,n,1);
        int m,l,r;
        cin>>m;
        while(m--)
        {
            scanf("%d %d",&l,&r);
            int now=a[l];
            while(l!=r)
            {
          //      cout<<" "<<now<<" "<<l<<endl;
                flog=0;
                query(now,l+1,r,1,n,1);
                if(flog)
                    l=index;
                else
                    break;
                now%=a[l];

            }
            printf("%d\n",now);
        }
    }
    return 0;
}


博途PLC S7-1200/1500 ModbusTcp通信SCL代码篇(轮询) 博途PLC MODBUS TCP的详细讲解和注意事项,可以参看下面这篇博文,这里不在赘述。这篇作为SCL代码篇主要给出SCL语言下的轮训写法和注意事项。博途PLC1200/1500PLC ModbusTcp通信(轮询处理)_RXXW_Dor的博客-优快云博客。............ 阅读详情

相关推荐

SAP PS模块实战指南:从项目启动到结算的全流程解析

本文详细解析SAP PS模块在项目管理中的全流程应用,从项目启动到结算的关键操作与实战技巧。通过WBS设计、预算控制和资源调配等核心功能,帮助管理者高效协调项目进度与成本,特别适用于交付型和成本型项目管理。掌握PS模块能显著提升项目管理效率与精准度。

weixin_42553471的博客 448

HDU - 5875 Function 二分+RMQ||线段树||暴力

题目链接 题意: 给出长度为n的正整数序列,q个询问[l,r] f(l,r) = f(l,r-1)%a[r] l f(l,r) = a[r] l=r 对于每个询问[l,r],输出f(l,r)的值 思路: 可以推出f(l,r)=a[l]%a[l+1]%...%a[r] 然后我们知道,因为是%,所以只有遇见第一个比a[l]

Marcus-Bao的个人主页 538

CANoe_Demo_下载以及安装教程

CANoe Demo下载安装流程

Jar_Lee的博客 1万+

HDU 5875 Function (ST表+二分 or 线段树)

Problem Description   The shorter, the simpler. With this problem, you should be convinced of this truth.      You are given an array A of N postive integers, and M queries in the form (l,r).

K键盘里的青春K 417

BU61580芯片实战:手把手教你配置1553B通信的BC端寄存器(含代码解析)

本文详细解析了BU61580芯片在1553B通信中的BC端寄存器配置方法,包括关键寄存器功能映射、初始化代码解析及回环测试实现。通过实战案例和代码示例,帮助开发者快速掌握1553B通信的核心技术,提升系统稳定性和通信质量。

a1b2c的博客 224

手把手教你学 Simulink (1.3)--Simulink 的模块库及其模块介绍

Simulink 提供了丰富的模块库,涵盖了从基本的信号生成和处理到复杂的数学运算和系统建模的各种功能。通过熟悉这些模块库及其模块,你可以更高效地构建和仿真动态系统。

MHD0815的博客 5151

hdu 5875 Function(二分RMQ)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=5875 题意: 给一个区间L和R,求a[L]%a[L+1]%a[L+2]…%a[R]。 分析: ai如果模一个比他大的数,那么不会变,只有模比他小的数才会改变。 所以我们考虑ai的时候,直接找到比他小的那个数取模即可,这样数会逐渐变小。 所以用rmq预处理一下,然后二分找比ai小的第一个

HARD_UNDERSTAND 323

【DeepSeek开发入门】DeepSeek API 开发初体验

在人工智能蓬勃发展的时代,DeepSeek作为一款功能强大的AI大模型,为开发者提供了丰富的接口和便捷的开发体验。本文将基于DeepSeek的几个关键接口,带你快速入门,开启DeepSeek开发的探索之旅。通过本文,你已经初步了解了DeepSeek开发中几个重要接口的使用方法,包括列出模型、对话补全和查询余额接口,以及开发过程中的常见问题及解决办法。这是你踏入DeepSeek开发领域的第一步。在后续的学习中,你可以深入研究模型的参数调优,探索不同模型在各种场景下的应用,如利用模型实现更复杂的推理对话功能。

寻道AI,探索AI无限可能! 2758

【HDU - 5875】Function(线段树,区间第一个小于某个数的数 或 RMQ二分)

题干: The shorter, the simpler. With this problem, you should be convinced of this truth. You are given an arrayAAofNNpostive integers, andMMqueries in the form(l,r)(l,r). A functionF(l,...

xuanweiace的博客 672

第9章:Embedding、Pooling 与检索增强基础

本文介绍了律师事务所如何利用vLLM构建法律文档RAG系统,解决传统关键词检索在语义匹配上的不足。主要内容包括: 项目背景:传统Elasticsearch检索在法律术语上的低准确率问题,及多模型维护的复杂性; 技术方案:采用vLLM统一支持生成和向量化能力,通过语义向量检索提升相关性; 关键实现: 用vLLM的Embedding端点处理文档向量化 构建包含离线索引和在线检索的完整RAG流程 采用余弦相似度进行语义匹配 实践建议:切片大小选择、向量归一化处理、不同场景下的数据库选型等。

davidwang456的专栏 60

1. linux系统下在QT中配置OPenCV开发环境

在Linux系统下配置OpenCV的开发环境,需要在官网上下载源码,并使用CMake工具对源码进行编译,与在Windows系统中配置相比复杂许多,本文linux系统为linux minit,opencv是最新版本4.7.0,不过对于linux和opencv的版本要求行不高。此项更改为自己OPenCV想要安装的路径内,默认是安装在**/usr/local。在打开的文件中添加下图中的一行代码,路径是opencv默认的安装路径。按钮,弹出下图界面,默认选择即可,然后点击。

山间点烟雨 2906

HDU 5875 Function(logn取模+二分rmq)

给你n个数字,q次询问,求almodal+1mod...modar给你n个数字,q次询问,求a_l mod a_{l+1}mod ...moda_r 首先考虑到al取模到底,就logal次首先考虑到a_l取模到底,就loga_l次 然后就是你怎么找每次第一个比它小的数字然后就是你怎么找每次第一个比它小的数字 考虑线段树,但是需要二分区间,复杂度比较大(可能是我想烦了)考虑线段树,但是需要二分区

Miracle_ma的专栏 1555

【全网首发】2026华为OD双机位C卷 机考真题题库含考点说明以及在线OJ (Java)

如果你收到的是双机位C卷考试通知,需要针对性地调整备考策略。自2025年11月19日起,华为OD机试已正式从双机位A卷切换至。复杂度明显提升,需要组合多个算法点。题面相对简单,直接考查编程基本功。考查问题分析、算法选择和优化能力。通常为1-2个核心算法点的应用。

算法大师! 165

hdu5875 Function

题意:一个区间,m次询问(l,r),求a[l]%a[l+1]%...%a[r] 题解:比赛时候,想到的是二分线段树,说了以后,学弟说可能会退化,当时没多想,其实仔细想想,构造不出来那样的数据吧,线段树常数比较大,看到队友用RMQ,常数小             其实本质差不多,就是先找前一半的最小,看看是不是小于a[l],如果是,就继续在左找,没有就在右找,如果右也没有,就退 int a[1

matrix5267的博客 283

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

【HDU5875】Function(RMQ)

容易推导:F(l,r) = a[l] % a[l+1] % a[l+2]…% a[r]; 因为模运算,所以只需找右边比当前位置的值小的数,更新位置线段树版本#pragma comment(linker, "/STACK:1024000000,1024000000") #include <cstdio> #include <iostream> #include <cstrin

No Program No Life 406

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

hdu 5875 ACM/ICPC Dalian Online 1008 Function

题目链接分析:用RMQ预处理每段的最小值,然后对每次查询的区间找最靠近左边的小于a[l]a[l]的值,取模后递归操作。因为每次取模至少会使原来的值减半,所以递归操作是O(log(a[i]))O(log(a[i]))的。每次查询最小值如果通过线段树O(log(N))O(log(N))那么最终的复杂度为O(Qlog(a[i])log(N))O(Qlog(a[i])log(N))这样的复杂度很不幸会TLE

萌の上揺れ 538

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

山东理工大学2017校赛 3930皮卡丘的梦想2—线段树加状压 3926bLue的二叉树-KMP或hash 3914校赛~校赛~-打表找规律

皮卡丘的梦想2 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 一天,一只住在 501 的皮卡丘决定发奋学习,成为像 LeiQ 一样的巨巨,于是他向镇上的贤者金桔请教如何才能进化成一只雷丘。 金桔告诉他需要进化石才能进化,并给了他一个地图,地图上有 n 个小镇,他需

jerans的博客 1008

Codeforces Round #426 (Div. 2) C. The Meaningless Game 思维 D. The Bakery dp

题目:http://codeforces.com/contest/834/problem/C 题意:两个人玩游戏, 两个人初始值都为1,每次可以选一个正整数,一个人乘以这个正整数的平方,一个人乘以这个正整数,给你多对数,判断会不会出现这个游戏局面 把ab乘起来,判断是不是一个数的三次方,并且是不是能被a和b整除 k^3==a*b&&a%k==0&&b%k==0 结果找k的二分写错了。。。。

jerans的博客 648

C - Can you answer these queries? HDU - 4027 线段树单点更新

Can you answer these queries? Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65768/65768 K (Java/Others) Total Submission(s): 15096    Accepted Submission(s): 3540 Problem Descriptio

jerans的博客 588

hdu 6070 Dirt Ratio 二分,线段树

题目:http://acm.hdu.edu.cn/showproblem.php?pid=6070 题意:定义一个区间的值为(不同数的个数/区间长度),求所有区间内的最小值 有一种01分数规划的思想,二分结果值now,这样只要存在一个区间使得这个值 也就是  dif/(r-l+1) dif dif+l*now 这样O(n)枚举每一个r,并且要快速的确定dif+l*now的最小值,l*n

jerans的博客 494

FZU 2105 Digits Count 线段树

题目:点击打开链接题意:n个数字,四种操作, 区间AND OR XOR 一个数, 区间求和数字范围很小,所以可以按位去操作,区间AND和区间OR其实就可以理解为区间置0或置1,XOR为区间取反,AND和OR是可以一起操作的,但结合XOR,如果用一个lazy标记是不可行的,所以开两个lazy标记,一个是有没有区间置数,第二个是有没有区间取反。区间置数:无论有没有取反标记,都应该置为相应数,并且要把取...

jerans的博客 487

Codeforces Round #439 (Div. 2) E. The Untended Antiquity 二维线段树||二维树状数组

http://codeforces.com/contest/869/problem/E 题意:n*m的矩阵,q次操作,三种类型 类型1:给指定矩阵加上围栏 类型2:给指定矩阵去掉围栏 类型3:查询两点是否存在一条不通过围栏的路 加围栏是全包,也就相当于加了围栏后只能是里面走向里面,外面走向外面,这样就可以给这块平面附一个值,判断能不能走直接判相等就可以了,因为有矩阵叠加的情况,也就是围栏

jerans的博客 460

hdu 6155 线段树加矩阵快速幂

http://acm.hdu.edu.cn/showproblem.php?pid=6155 第一次做矩阵快速幂套线段树的题,感觉好神奇 #include using namespace std; const int maxn=1e5+5,mo=1e9+7; struct NODE { long long a[3][3]; }t1,t2,be; NODE mult(NODE

jerans的博客 420

贝壳找房户外拓展(中等) 扫描线

https://nanti.jisuanke.com/t/27118在线段树上写了矩阵乘法,其实只是2*2的矩阵,手写转移似乎更好。#include&lt;bits/stdc++.h&gt; using namespace std; const int mo = 323232323; const int maxn = 1e5 + 100; struct I_node{ int p, q, x, ...

jerans的博客 415

hdu-5861 线段树

http://acm.hdu.edu.cn/showproblem.php?pid=5861 题意是每段路有路灯,每个路灯只能开关一次,每个路灯开一天需要一定花费,给定每天需要用的路灯线段,求每一天的总的最小花费 因为只能开关一次,所以路灯的花费必定就是从第一次使用一直到最后一次使用,这样就是线段树裸的区间修改操作了 最后整体查询一遍,对每个路灯使用的日期,左端点加,右端点减,前缀和即花费

jerans的博客 319

A - A Simple Problem with Integers POJ - 3468 线段树

A Simple Problem with Integers Time Limit: 5000MS   Memory Limit: 131072K Total Submissions: 109423   Accepted: 34074 Case Time Limit: 2000MS Description You have

jerans的博客 233
上一篇: hdu5791Two dp hdu5781ATM Mechine 概率dp hdu5787 K-wolf Number 数位dp
下一篇: hdu 5795A Simple Nim sg打表
jerans
博客等级 码龄10年 54粉丝 255原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值