jzoj4227-B【dp,字符串】

正题


题目大意

给定一个后缀数组,和每个地方填不同的字母可以获得的不同权值,求最大权值之和。


解题思路

先用后缀数组aaa计算出每个后缀的排名RankRankRank数组。

然后考虑dpdpdp,首先我们发现对于aia_iai,每个cai≤cai+1c_{a_i}\leq c_{a_{i+1}}caicai+1(ccc表示字符串)。所以我们可以用fi,jf_{i,j}fi,j表示aia_iai的位置填jjj这个字符且前面的aia_iai都填完的最大代价。

这时候我们需要考虑这个位置和上个位置是否可以相同。对于两个子串,头字符相同,我们就会比较后面的字符,而我们已经知道每个后缀的RankRankRank了,直接比较除头字符以外的就好了。


codecodecode

#include<cstdio>
#include<algorithm>
#define N 100010
using namespace std;
int n,seed,w[N][30],a[N],z[N],rank[N],f[N][30],ans;
int mak_ran()
{seed=(long long)(100000005ll*(long long)seed+1532777326ll)%998244353ll;return seed/100;
}
int main()
{scanf("%d%d",&n,&seed);for(int i=1;i<=n;i++)for(int j=0;j<26;j++)w[i][j]=mak_ran()%10000;for(int i=1;i<=n;i++)scanf("%d",&a[i]),rank[a[i]]=i;for(int i=0;i<26;i++){f[1][i]=w[a[1]][i];if(n==1) ans=max(ans,f[1][i]);}for(int i=2;i<=n;i++)for(int j=0;j<26;j++){for(int k=0;k<=j;k++){if(k==j&&rank[a[i]+1]<=rank[a[i-1]+1]) continue;f[i][j]=max(f[i][j],f[i-1][k]+w[a[i]][j]);}if(i==n) ans=max(ans,f[i][j]);}printf("%d",ans);
}

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

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

相关文章

处理ASP.NET Core中的HTML5客户端路由回退

在使用由Angular&#xff0c;React&#xff0c;Vue等应用程序框架构建的客户端应用程序时&#xff0c;您总是会处理HTML5客户端路由&#xff0c;它将完全在浏览器中处理到页面和组件的客户端路由。几乎完全在浏览器中... HTML5客户端路由在客户端上工作的很好&#xff0c;但是当…

Druid SQL查询数据timeStamp时区问题

一、Druid默认时区 默认使用UTC0000&#xff0c;数据存储的时间timeStamp为UTC0000 二、北京时间 在中国&#xff0c;使用UTC0800&#xff0c;查询时间需要设置时区或者将时区转换为UTC0000时间 以下查询是UTC0000时间&#xff0c;查询结果的dateTime也是UTC0000时间需要进行…

Promise解决异步操作问题

问题: 当有多个回调函数后&#xff0c;就无法保证其输出的顺序性了&#xff0c;而采用嵌套的方式虽可以解决这个问题&#xff0c;但是代码样式太丑&#xff0c;且很乱&#xff0c;Promise的出现就是为了解决这个问题 多个回调函数 var fs require(fs);fs.readFile(./files/1.…

jzoj4228-C【dp】

正题 题目大意 每个点往可以往4个方向之一发射光&#xff0c;要求光不可以相交且不可以经过别的点&#xff0c;求方案总数。 解题思路 将点按xxx排序&#xff0c; 设fl,r,u,d,if_{l,r,u,d,i}fl,r,u,d,i​表示放到第iii个点&#xff0c;最上面的向下发射的点为lll&#xff0c…

TFS在项目中DevOps落地进程(下)

紧接上篇 TFS在项目中Devops落地进程&#xff08;上&#xff09; 再接着说TFS相关之前先插入一个番外篇&#xff0c;虽然跟TFS关系不大但跟DevOps关系很大&#xff0c;觉得有必要在此乱入一下。 番外篇--监控之Application Insights 我们之前并没有任何监控类产品&#xff08;我…

Js如何判断undefined和null

判断是否为undefined var example undefined; if (typeof(example) "undefined") {console.log("undefined") }判断是否为null var example null; if (!example && typeof(example)!undefined && example!0) {console.log("nu…

Spring Data之MongoDB配置

一、重写基类扩展功能 package com.mk.mongodb.repository;import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.data.mongodb.core.aggregation.Aggregation; import org.springframework.data.mongodb.core.aggregation.Aggregation…

欢乐纪中某B组赛【2019.1.28】

前言 心态爆炸 成绩 RankRankRank是有算别人的 RankRankRankPersonPersonPersonScoreScoreScoreAAABBBCCCDDD3332017myself2017myself2017myself1901901901001001005050500004040401313132017zyc2017zyc2017zyc1701701707070706060600004040401313132017hzb2017hzb2017hzb1701…

这应该是目前最快速有效的ASP.NET Core学习方式(视频)

ASP.NET Core都2.0了&#xff0c;它的普及还是不太好。作为一个.NET的老司机&#xff0c;我觉得.NET Core给我带来了很多的乐趣。Linux&#xff0c; Docker&#xff0c; CloudNative&#xff0c;MicroService&#xff0c;DevOps这些都能跟它很完美的结合&#xff0c;再加ASP.NE…

大叔公开课~微服务与持久集成

闲话多说 免费报名&#xff1a;http://www.genshuixue.com/teacher/classCourseDetail/171117794648么可以通过阅读原文报名 .Net Core来了&#xff0c;带给我们的是什么&#xff1f;跨平台&#xff0c;无疑是最大的亮点&#xff01; Docker横空出世&#xff0c;让开发者和运维…

语音服务——腾讯云

腾讯语音服务文档 一、开通语音消息服务流程 &#xff08;1&#xff09;注册并认证 如果您还没有腾讯云账号&#xff0c;您需要 注册腾讯云 账号&#xff0c;并完成 企业实名认证。如果您已有企业认证的腾讯云账号&#xff0c;请直接进行下一步操作。 申请开通语音消息服务 …

P4231-三步必杀【差分】

正题 题目大意 修改[L..R][L..R][L..R]加上[S..E][S..E][S..E]的等差数列&#xff0c;求最终答案。 题目大意 很明显的差分。 aia_iai​为原数组&#xff0c;bib_ibi​为一阶差分数组&#xff0c;cic_ici​为二阶差分数组 axaxs(x−l)∗k(x∈[l..r])a_xa_xs(x-l)*k(x\in[l..r…

请用JavaScript实现一个函数,接受一-个IP白名单列表whitelist以及列表ipList

请用JavaScript实现一个函数&#xff0c;接受一-个IP白名单列表whitelist以及 列表ipList,判断输入的ipList中是否有任何ip包含在whitelist中&#xff0c;如果存在返回true,如果都不存在返回false。要求:1.列出所有测试用例2.定义并实现该函数&#xff0c;有完整出入参*示例:如…

Visual Studio交叉编译器提供对ARM的支持

只要ARM平台能够运行Windows&#xff0c;Visual Studio就有能力拓展ARM平台。在Visual Studio 2017 15.5预览版2中&#xff0c;该IDE通过使用GCC编译器&#xff0c;增加了对基于ARM的计算机和物联网&#xff08;IoT&#xff09;设备的支持力度&#xff0c;从而扩展了对ARM平台的…

Flume均匀发送数据到kafka的partition配置UUID Interceptor生成key的坑

一、需求 Flume向kafka发送数据时&#xff0c;同一个flume发送到kafka的数据总是固定在某一个partition中。而业务需求是发送的数据在所有的partition平均分布 二、实现 Flume的官方文档&#xff1a; Kafka Sink uses the topic and key properties from the FlumeEvent hea…

jzoj4244-yi【贪心】

正题 题目大意 一些飞船&#xff0c;选最少的&#xff0c;使得可以载所有乘客来回两次 解题思路 因为代价都是一样的&#xff0c;选载客最多可以往返两次的就好了。 codecodecode #include<cstdio> #include<algorithm> using namespace std; const int N100010…

我心中的ASP.NET Core 新核心对象WebHost(二)

这是ASP.NET Core新核心对象系列的第二篇&#xff0c;上一篇 WebHost准备阶段 我们讲到了WebHostBuilder的初始化及配置。我们给WebHostBuilder进行以下配置 UseKestrel 设置Kestrel为HttpServer ConfigureAppConfiguration 设置了配置文件 ConfigureLogging 配置了日志处理器…

Vue及React脚手架安装

React npm i -g create-react-app create-react-app project React路由安装 yarn add react-router-dom Vue cnpm install -g vue-cli vue create project

Hadoop生态Flume(三)拦截器(Interceptor)介绍与使用(1)

转载自 Flume中的拦截器&#xff08;Interceptor&#xff09;介绍与使用&#xff08;一&#xff09; Flume中的拦截器&#xff08;interceptor&#xff09; 用户Source读取events发送到Sink的时候&#xff0c;在events header中加入一些有用的信息&#xff0c;或者对events的…

SOA对微服务的残余影响

近日&#xff0c;Tareq Abedrabbo在伦敦2017 Con微服务大会上说&#xff0c;SOA对微服务架构设计的残余影响仍然存在&#xff0c;包括技术选型和组织方面的问题。最直接的一个例子就是大多数企业仍然区分对待架构师和开发人员&#xff0c;架构师负责出规范&#xff0c;开发人员…