jzoj6310-Global warming【线段树,LIS】

正题


题目大意

给出一个长度为nnn的序列aaa,可以选择一个区间[l,r][l,r][l,r]使得ai=ai+d(l≤i≤r,∣d∣≤x)a_i=a_i+d(l\leq i\leq r,|d|\leq x)ai=ai+d(lir,dx)。求最长上升子序列的最大值。


解题思路

我们可以发现肯定有一种最优解法是选择[k,n][k,n][k,n]加上xxx。因为比较显然,这里不做解释,如果不懂可以在评论说。

然后我们可以求出数组fif_ifi表示以iii结尾的LISLISLIS长度,gig_igi表示以iii开头的LISLISLIS长度。这里用线段树O(nlog⁡n)O(n\log n)O(nlogn)求即可。

然后我们可以枚举这个kkk,然后ans=gk+max{fi}(i&lt;k,ai&lt;ak+x)ans=g_k+max\{f_i\}(i&lt; k,a_i&lt;a_k+x)ans=gk+max{fi}(i<k,ai<ak+x)
我们可以发现这个式子和求LISLISLIS的式子有点像,我们可以用线段树维护
总时间复杂度O(nlog⁡n)O(n\log n)O(nlogn)


codecodecode

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=210000;
struct Tree_node{int l,r,w;
};
struct Seq_Tree_Node{Tree_node t[N*4];void Build(int x,int l,int r){t[x].l=l;t[x].r=r;t[x].w=0;if(l==r) return;int mid=(l+r)>>1;Build(x*2,l,mid);Build(x*2+1,mid+1,r);return; }int Ask(int x,int l,int r){if(t[x].l==l&&t[x].r==r)return t[x].w;int mid=(t[x].l+t[x].r)>>1;if(r<=mid) return Ask(x*2,l,r);else if(l>mid) return Ask(x*2+1,l,r);else return max(Ask(x*2,l,mid),Ask(x*2+1,mid+1,r));}void Change(int x,int pos,int val){if(t[x].l==t[x].r){t[x].w=max(t[x].w,val);return;}int mid=(t[x].l+t[x].r)>>1;if(pos<=mid) Change(x*2,pos,val);else Change(x*2+1,pos,val);t[x].w=max(t[x*2].w,t[x*2+1].w);return;}
}Tree;
int n,m,X,a[N],x[N],f[N],g[N],ans;
int main()
{freopen("glo.in","r",stdin);freopen("glo.out","w",stdout);scanf("%d%d",&n,&X);for(int i=1;i<=n;i++){scanf("%d",&a[i]);x[++m]=a[i];}x[++m]=-2147483647;x[++m]=2147483647;sort(x+1,x+1+m);m=unique(x+1,x+1+m)-x-1;for(int i=1;i<=n;i++)a[i]=lower_bound(x+1,x+1+m,a[i])-x;Tree.Build(1,1,m);for(int i=1;i<=n;i++){f[i]=Tree.Ask(1,1,a[i]-1)+1;Tree.Change(1,a[i],f[i]);}Tree.Build(1,1,m);for(int i=n;i>=1;i--){g[i]=Tree.Ask(1,a[i]+1,m)+1;Tree.Change(1,a[i],g[i]);}Tree.Build(1,1,m);for(int i=1;i<=n;i++){int k=upper_bound(x+1,x+1+m,x[a[i]]+X-1)-x-1;ans=max(ans,g[i]+Tree.Ask(1,1,k));Tree.Change(1,a[i],f[i]);}printf("%d",ans);return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/322002.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot shedlock MongoDb锁配置

配置mongo的表进行锁任务管理 maven依赖包 <dependency><groupId>net.javacrumbs.shedlock</groupId><artifactId>shedlock-spring</artifactId><version>2.5.0</version></dependency><dependency><groupId>net…

jzoj6311-Mobitel【dp,整除分块】

正题 题目大意 n∗mn*mn∗m的矩阵&#xff0c;求有多少条路径的乘积不小于SSS。 解题思路 我们用总路径数减去乘积小于SSS的路径数 我们很容易想到用fi,j,kf_{i,j,k}fi,j,k​表示到(i,j)(i,j)(i,j)这个点&#xff0c;然后乘积之和为kkk的dpdpdp。但是时间复杂度O(nmS)O(nmS)O…

ASP.NET Core远程调试

关于ASP.NET Core远程调试的具体做法可参考微软文档——Remote Debug ASP.NET Core on a Remote IIS Computer in Visual Studio 2017&#xff0c;详细做法不再赘述&#xff0c;这里主要记录下自己的感受。体验Web Deploy这种发布方式可直接将代码打包发到指定服务器的指定站点…

SpringCloud Consul自定义服务注册

SpringCloud自定义consul服务注册器&#xff0c;获取特定的本地地址进行注册&#xff0c;注销的时候检查并注销其他无效实例 package com.mk.springcloud.config;import com.ecwid.consul.v1.ConsulClient; import com.ecwid.consul.v1.agent.model.NewService; import com.ec…

jzoj6312-Lottery【dp,前缀和】

正题 题目大意 给出一个长度为nnn的序列aaa和数字lll&#xff0c;定义两个长度为lll的区间[l1,r1][l_1,r_1][l1​,r1​]和[l2,r2][l_2,r_2][l2​,r2​]的距离为有多少个不相同的数字。 然后有qqq个询问kik_iki​&#xff0c;要求输出有多少对距离为kik_iki​的区间。 解题思路…

修复.NET的HttpClient

早在2016年我们就报道过 &#xff0c;.NET的HttpClient存在一些问题。随着.NET Core 2.1中HttpClientFactory的引入&#xff0c;其中部分问题已经得到缓解。HttpClient的根本问题是&#xff0c;每次调用资源好像都应该在使用后立即释放。在现实中&#xff0c;那意味着每个目标服…

阿里云OSS存储

阿里云OSS存储,文件上传与文件删除 maven依赖&#xff1a; <dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.10.2</version></dependency> 代码&#xff1a; package co…

欢乐纪中A组赛【2019.8.20】

前言 Rank1???Rank1???Rank1??? 成绩 RankRankRankPersonPersonPersonScoreScoreScoreAAABBBCCC111(J−3)WYC(J-3)WYC(J−3)WYC145145145100100100000454545212121(J−3)ZYC(J-3)ZYC(J−3)ZYC636363383838000252525353535(J−3)XXY(J-3)XXY(J−3)XXY45454500000045454…

Asp.Net Core2.0 基于QuartzNet任务管理系统

Quartz.NET官网地址&#xff1a;https://www.quartz-scheduler.net/Quartz.NET文档地址&#xff1a;https://www.quartz-scheduler.net/documentation/index.htmlQuartz.NET是一个开源的作业调度框架&#xff0c;是OpenSymphony 的 Quartz API的.NET移植&#xff0c;它用C#写成…

jzoj6313-Maja【dp】

正题 题目大意 n∗mn*mn∗m的格子&#xff0c;从(A,B)(A,B)(A,B)出发&#xff0c;走KKK步&#xff0c;然后要求回到(A,B)(A,B)(A,B)&#xff0c;求路径最大价值(可以重复经过一个点&#xff0c;但不能停留)。 解题思路 我们可以将回路转换为一条K2\frac{K}{2}2K​的路径&#…

64位的Mac OS X也有Windows.Forms了

Mono长期以来一直为Linux、Mac和Windows提供Windows.Forms的纯C#实现。随着技术潮流的变化&#xff0c;Mono的Windows.Forms平台仍然没有得到很好的发展&#xff0c;还只是各种第三方库和应用程序的依赖&#xff0c;这使得它的重要性超过了那些基于WinForms的应用程序。Mono默认…

java 集合总结

一、集合类型 &#xff08;1&#xff09;集合 List Queue Set Map List Queue Set 实现Collection接口 &#xff08;2&#xff09;Collections工具类 reverse(List list)&#xff1a;反转 shuffle(List list),随机排序 sort(List list, Comparator c);定制排序&#…

jzoj6316-djq的朋友圈【状压dp】

正题 题目大意 有盟友和情敌关系&#xff0c;情敌的情敌是朋友之类的规则&#xff0c;然后如果一个人和111的关系已经确定&#xff0c;以后都不会有任何影响&#xff0c;然后求一个序列&#xff0c;要求111的盟友最大。 解题思路 定义与111直接连边的是AAA类点&#xff0c;不…

.Net 4.X 提前用上 .Net Core 的配置模式以及热重载配置

1. 前言在提倡微服务及 Serverless 越来越普及的当下&#xff0c;传统 .Net 应用的配置模式往往依赖于一个名为 web.config 的 XML 文件&#xff0c;在可扩展性和可读性与时代脱节了。当然&#xff0c;我不会怂恿一下子把所有应用迁移到 .Net Core 上&#xff0c;本文将在尽量不…

P4764-[CERC2014]Pork barrel【主席树,LCT,最小生成树】

正题 题目链接:https://www.luogu.org/problem/P4764 题目大意 给出一张图&#xff0c;若干个询问&#xff0c;每个询问求只使用权值在[L,R][L,R][L,R]这个范围内的边组成的最小生成树权值和&#xff0c;强制在线。 解题思路 我们先考虑LLL固定&#xff0c;这时我们发现我们…

C# 枚举特性 FlagAttribute 的应用

写在前面枚举Enum 全称(Enumeration)&#xff0c;即一种由一组称为枚举数列表的命名常量组成的独特类型。可以看出枚举的出现是为了使我们可以在程序中方便的使用一些特定值的常量&#xff0c;一般的使用大家都比较熟悉&#xff0c;本文主要介绍枚举的特性 FlagAttribute。Flag…

jzoj2908,P1527-[集训队互测 2012]矩阵乘法【整体二分,二维树状数组】

正题 题目链接:https://www.luogu.org/problem/P1527 题目大意 给出一个矩阵&#xff0c;每个询问求子矩阵中的第kkk小数。 解题思路 我们发现我们对于每个询问我们可以二分答案&#xff0c;然后查找该子矩阵中有多少个数≤mid\leq mid≤mid来判断。 但是这样时间复杂度和空…

重温.NET下Assembly的加载过程

最近在工作中牵涉到了.NET下的一个古老的问题&#xff1a;Assembly的加载过程。虽然网上有很多文章介绍这部分内容&#xff0c;很多文章也是很久以前就已经出现了&#xff0c;但阅读之后发现&#xff0c;并没能解决我的问题&#xff0c;有些点写的不是特别详细&#xff0c;让人…

jzoj3410-[GDOI2014模拟]Tree【最小生成树,贪心】

正题 题目大意 在一张图中选择一颗生成树使得边权的方差最小。 解题思路 我们很容易想到一种贪心&#xff0c;那就是在按照边权排好序后选择一段连续的区间然后使用这段区间构成最小生成树&#xff0c;这样时间复杂度是O(m3log⁡m)O(m^3\log m)O(m3logm)&#xff0c;时间复杂…

看eShopOnContainers学一个EventBus

最近在看微软eShopOnContainers 项目&#xff0c;看到事件总线觉得不错&#xff0c;和大家分享一下看完此文你将获得什么&#xff1f;eShop中是如何设计事件总线的实现一个InMemory事件总线eShop中是没有InMemory实现的&#xff0c;这算是一个小小小的挑战发布订阅模式发布订阅…