【UOJ 246】【UER #7】套路

YOLOv5源码逐行超详细注释与解读(5)——配置文件yolov5s.yaml 全网最详细的YOLOv5源码解读之配置文件yaml。逐行注释,逐句讲解,一文带你了解yaml。小白必看! 阅读详情

Description

给出n个数(<=n),设S(i,j)为i到j之间的两两数的绝对值最小值,求S(l,r)∗(r−l)(r-l+1>=k)的最大值。

Solution

设K为选K个数,
先想一下枚举K怎么做,很显然要先求出S,
设f[i][j]为做到第i个,往前选j个的S值,有DP:fi,j=min(fi−1,j−1,fi,j−1,|ai−ai−j+1|)
再想一下如果K非常大,
那么S的值一定不会很大,所以我们就可以枚举S的值,看看往前最多可以选到哪,
现在我们要求以当前点i作为结尾的S=j的区间,最长有多长;
记录一下la[j]表示j这个数最后出现的位置,ca[j]表示所有S=j的区间中,区间的开头出现的最晚的位置,
枚举j,伴随着j的增大,区间的左端点l的位置一定越来越大,
要使当前的区间S=j,就要在上一个区间(S=j-1)算出的l的基础上,往后移,
那么就要使当前的区间不得使l<=min(la[ai+j−1],la[ai−j+1]),也不得使l<=ca[j−1],
所以取一个max即可。

我们发现当k=n√时,复杂度最优为O(nn√)。

复杂度:O(nn√)

Code

#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cmath>
#define foi(i,a,b) for(i=a;i<=b;i++)
#define fo(i,a,b) for(int i=a;i<=b;i++)
#define fod(i,a,b) for(int i=a;i>=b;i--)
using namespace std;
const int N=200500,INF=2147483640;
int read(int &n)
{
    char ch=' ';int q=0,w=1;
    for(;(ch!='-')&&((ch<'0')||(ch>'9'));ch=getchar());
    if(ch=='-')w=-1,ch=getchar();
    for(;ch>='0' && ch<='9';ch=getchar())q=q*10+ch-48;n=q*w;return n;
}
int m,n,ans,m1,M;
int a[N],f[2][N];
int la[N*2],ca[N];
int main()
{
    int q,w;
    read(n),read(m1),read(m);M=666;m--;
    fo(i,1,n)read(a[i]),f[1][i]=N;
    fo(I,2,M)fo(i,I,n)
    w=(I+1)%2,ans=max(ans,(I>m)*(I-1)*(f[I%2][i]=min(f[w][i],min(f[w][i-1],abs(a[i]-a[i-I+1])))));
    la[a[1]]=1;
    fo(i,2,n)
    {
        q=1;
        fo(j,0,min(m1,M))
        {
            if(i-q+1>m)ans=max(ans,j*(i-q));
            if(a[i]>j&&la[a[i]-j])q=max(q,la[a[i]-j]),ca[j]=max(ca[j],la[a[i]-j]);
            ca[j]=max(ca[j],la[a[i]+j]);
            q=max(q,max(ca[j]+1,la[a[i]+j]));
        }
        la[a[i]]=i;
    }
    printf("%d\n",ans);
    return 0;
}
PCL 欧式聚类分割【2026最新版】 PCL中欧式聚类提取算法原理详解、代码实现以及一个大自然场景地物分割提取并保存分割结果到本地文件夹的应用案例。 阅读详情

相关推荐

Java服务端实现Google Pay支付功能

全网最全代码、最清晰服务端处理Google Pay,最清晰讲解Google Pay集成逻辑。

jack2350536098的博客 1万+

【UER #7】套路

题目链接【UER #7】套路Description反攻正在进行中,按照套路,跳蚤国将会很快获得最终的胜利。跳蚤国的情报局也没闲下来,他们正打算派遣一批“菲克蚤”前往跳晚国窃取有关三星 note7 的资料。 Fake Yang 是这批“菲克蚤”的教练,他教会他们各种 Fake 的技术,以便更好混入敌方内部。共 n 只菲克蚤,由 1到 n编号。Fake Yang 给每个菲克蚤都算了特征值 a1,…,a

Jacky35 599

Jenkins中文显示不全?三步搞定Locale插件+汉化包的正确安装姿势

本文针对Jenkins界面中文显示不全问题,提供从原理到实战的深度解决方案。文章详细解析了Locale插件与中文语言包的核心机制,并分步指导如何通过配置JVM环境、正确安装插件及执行深度排查,彻底解决汉化顽疾,实现Jenkins界面的完美中文显示。

weixin_42611310的博客 259

uoj#246. 【UER #7】套路(dp+分块?分类讨论?)

题目链接分析: 目前为止我只能理解dp部分我就喜欢这种单纯不做作的题目 一看名字就明白了这道题的本质中二的题目描述很显然,我们的关键就是求出最小相似度 朴素算法n^4如果我们现在有一个权值数组 显然,每一个数只可能与最邻近ta的数产生贡献 假设我们要求[i,j]之间的最小差距 那我们可以分成两部分[i,k],[k+1,j] 枚举k,取最小就可以了但是这样的复杂度是n^3然而我们全然不用

Coco_T的博客 564

ZEMAX优化方法---【Zemax学习】

在光学系统自动设计中,优化设计是光学设计中的重要阶段,也是ZEMAX软件的核心功能,涉及评价函数、权因子、阻尼因子等重要概念。在常用的阻尼最小二乘法优化设计的基础上,ZEMAX给我们提供了三种优化选择:Optimization(局部优化)、Global Search(全局优化)和 Hammer Optimization(锤形优化)。

yh的博客 4448

VS2019手动添加bits/stdc++.h全指南(附解决‘无法打开源文件‘错误)

本文详细介绍了在Visual Studio 2019中手动配置C++万能头文件bits/stdc++.h的完整方法,解决常见的'无法打开源文件'错误。通过分析GCC与MSVC编译器生态差异,提供了纯手动创建和MinGW移植两种可靠方案,并给出详细的步骤、常见错误排查及最佳实践建议,帮助开发者高效配置竞赛开发环境。

weixin_29011395的博客 547

【UOJ#246】套路(动态规划)

【UOJ#246】套路(动态规划) 题面 UOJ 题解 假如答案的选择的区间长度很小,我们可以做一个暴力\(dp\)计算\(s(l,r)\),即\(s(l,r)=min(s(l+1,r),s(l,r-1),abs(a_r-a_l))\)。 我们发现\(s(l,r)\le \frac{m}{r-l+1}\),那么当长度足够大的时候\(s(l,r)\)的取值很小。 所以我们对于询问分治处理,当长度小于...

weixin_30563319的博客 170

【网络与爬虫 44】Canvas指纹伪造技术:突破浏览器图形渲染检测的终极指南

Canvas和WebGL指纹是现代反爬虫系统中最难绕过的检测技术之一,它们通过分析浏览器图形渲染的细微差异来识别用户设备。本文将深入解析Canvas和WebGL指纹的工作原理,探讨其在反爬虫检测中的应用,并提供多种有效的伪造和绕过策略,帮助开发者理解并应对这些高级检测技术。

熵数实验室 1206

[UOJ#246][UER#7C]套路

Description给出n个在[1,m]范围内的数,你需要从中至少选k个连续的数。 定义s(l,j)表示[l,r]这个区间中的数两两之间差值绝对值的最小值,你需要让选择的区间[i,j]的s(i,j)*(j-i)最小。 求这个最小值。 n,m<=2*10^5Solution现在我们要想想如何求出一个区间的s值。 一个显然的想法是在区间长度x较小时,用F[i][j]表示i为左端点,且长度为j的

时光真疯狂, 我一路执迷于匆忙. 663

金属表面粗糙度对信号的影响

之前的文章中,已经采用CST中的微带线模块进行了很多的仿真分析,本文将再次利用这些模块,从另外一个角度去探讨关于传输线的使用问题--金属的表面粗糙度。 众所周知,数据传输中,当速率越来越高时,信号在金属介质中的趋肤效应就愈发明显,能量就会更多地集中于金属的表面进行流动,此时,如果金属表面不再光滑而是凹凸不平,能量的传输过程就会产生波动,当这种波动积累到一定的量级,就会严重影响到传输线的阻抗稳定性,从而导致信号失真和传输异常。

一只豌豆象的博客 2895

Android Framework SurfaceFlinger面试题及参考答案

请简述 SurfaceFlinger 在 Android 系统中的作用。 SurfaceFlinger 是 Android 系统中一个非常关键的服务。它主要负责将多个应用程序的 Surface 合成到一个屏幕显示内容中。 从应用程序的角度来看,每个应用都有自己的 UI 界面,这些 UI 界面实际上是由一系列的图层(Surface)构成。例如,一个应用可能有背景图层、按钮图层、文本图层等。应用通过向 SurfaceFlinger 提供这些 Surface 来请求显示。 SurfaceFl

大模型大数据攻城狮的专栏 1185

【UOJ】#246. 【UER #7】套路

【UOJ】#246. 【UER #7】套路 传送门http://uoj.ac/problem/246题解很详细 第二部分的单调队列需要好好思考

Pure_W的博客 465

YOLOv8改进 | 注意力篇 | YOLOv8引入EMAttention(EMA)注意力

具体来说,除了对全局信息进行编码以重新校准每个并行分支中的通道权重之外,还通过跨维度交互来进一步聚合两个并行分支的输出特征,以捕获像素级的成对关系。3. 跨空间学习:除了在每个并行子网络中建立局部的跨通道交互外,EMA模块还通过跨空间学习方法融合了两个并行子网络的输出特征图。到此本文的正式分享内容就结束了,在这里给大家推荐我的YOLOv8改进有效涨点专栏,后期我会根据各种最新的前沿顶会进行论文复现,也会对一些老的改进机制进行补充,如果大家觉得本文帮助到你了,订阅本专栏,关注后续更多的更新~

tsg6698的博客 895

【UOJ #246】【UER #7】套路

http://uoj.ac/contest/35/problem/246 神奇!我这辈子是想不出这样的算法了。 对区间长度分类讨论:题解很好的~ 我已经弱到爆了,看完题解后还想了一晚上。 题解中“利用\(r_y\)进行计算更新答案”的具体方法是记录以当前点为右端点,任意两个数的差值的最小值大于等于j的区间的左端点,记为\(pos_j\)。 就这个问题我想了一晚上啊TWT,我不滚粗谁滚粗Q...

as2886089的博客 223

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

uoj 246. 【UER #7】套路

#246. 【UER #7】套路 反攻正在进行中,按照套路,跳蚤国将会很快获得最终的胜利。跳蚤国的情报局也没闲下来,他们正打算派遣一批“菲克蚤”前往跳晚国窃取有关三星 note7的资料。 Fake Yang 是这批“菲克蚤”的教练,他教会他们各种 Fake的技术,以便更好混入敌方内部。共 n只菲克蚤,由 1到 n编号。Fake Yang给每个菲克蚤都算了特征值 a1,…,an,两个菲克蚤的相似

clover_hxy的博客 716

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

uoj #246. 【UER #7】套路

一直想做的题

OZY的博客 562

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

【UOJ 测试】C. 【#246 UER #7】套路(乱搞+枚举)

胭脂妆,残红落、悲歌凄凉断人肠

reverie_mjp的博客 675

uoj 245. 【UER #7】天路 (近似算法)

245. 【UER #7】天路 隆冬将至,几天后跳蚤国便会迎来寒冬,这对于以血肉之躯和飞机搏斗的跳蚤们来说并不是件好事……然而在悠悠历史岁月中,跳蚤国早已有了应对严寒的应急措施方案! 在跳蚤国王的带领下,跳蚤们准备启动天路热能塔 —— 红米 note7(红米 note7 为发烧而生)。这座热能塔高耸入云,直接穿出大气层从太空中直接吸收太阳光,垂直向下将热能送往跳蚤国各个角落。热能塔的制造工艺巧

clover_hxy的博客 833

【UER #7】天路

题目大意 给定一个长度为n的序列a,求长度分别为2−n的子序列中最大值-最小值最小是多少。 输出答案与标准答案误差在5%以内则视为正确。 Data Constraint n≤100000,1≤ai≤1000000

Akakii的博客 814

【UOJ 测试】B. 【#245 UER #7】天路(近似算法+RMQ)

百年的光阴等花期 可否再见你

reverie_mjp的博客 740

[近似算法 分治] UER #7 B.天路

vfk的题解没看懂 羞... #include #include #include using namespace std; inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; if (p1==p2) { p2=(p1=buf)+fread(buf,1,100000,stdin); if (p1==p2) ret

雯舞 467

uoj 246 套路 (sqrt)

#include using namespace std; #define N 200020 #define LL long long #define inf 0x3f3f3f3f int n, m, k; int a[N]; int dp[N]; int last[N], pos[N]; int main() { scanf("%d%d%d", &n, &m, &k); for(in

yamiedie_ 503

【UOj】#245. 【UER #7】天路

【UOj】#245. 【UER #7】天路 传送门http://uoj.ac/problem/245比赛题解很详细。 这题挺新颖的。只是不知道为什么,每次*1.05/0.95会wa掉QwQ

Pure_W的博客 418

UOJ#245. 【UER #7】天路

隆冬将至,几天后跳蚤国便会迎来寒冬,这对于以血肉之躯和飞机搏斗的跳蚤们来说并不是件好事……然而在悠悠历史岁月中,跳蚤国早已有了应对严寒的应急措施方案!在跳蚤国王的带领下,跳蚤们准备启动天路热能塔 —— 红米 note7(红米 note7 为发烧而生)。这座热能塔高耸入云,直接穿出大气层从太空中直接吸收太阳光,垂直向下将热能送往跳蚤国各个角落。热能塔的制造工艺巧夺天工,被誉为“带来温暖的天路”。但是跳

mrazer的博客 542

[UOJ246]套路 分类讨论+卡常

垃圾题目卡老子常数 不过题目本身还是可以的 当长度大的时候,值相邻最近的就小; 当长度小的时候,值相邻最近的就大。 哪个小我们枚举哪个 卡卡常就能过 #include #include #include #include #define N 200050 using namespace std; typedef int LL; int f[N][2]; int n,m,k

HbFS- 505

【UOJ 245】【UER #7】天路

Description 给出一个系列,要求出所有长度为k(1<k<=n)(1<k<=n)的序列中,最大值减去最小值的最小值,要求输出答案与正确答案相对误差均不超过 5% Solution 听CTY说这题一眼看去要用近似算法,我不会(实际上也不用)。 因为答案有一定的浮动,所有考虑一下从答案入手, 枚举k,表示当前做到绝对值差为k,再O(n)扫一遍,即可知道适用k的区间最长是多少,更新答案。

935
上一篇: 【UOJ 244】【UER #7】短路
下一篇: 【UOJ 245】【UER #7】天路
HOWARLI
博客等级 码龄11年 109粉丝 378原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值