xjoj 道路规划

本文讲述了作者在做学军中学模拟题时遇到的一道DP问题,初始尝试了与‘友好城市’问题类似的解决方案,但未成功。最终通过将问题转化为寻找最长公共子序列并调整序列顺序找到了正确解法。尽管复杂度为n^2,但在序列型DP中考虑nlogn的优化思路,通过对序列重新编号和寻找最长下降子序列来解决问题。
摘要由CSDN通过智能技术生成

吉丽王国有n个城市,每个城市有……………………..


今天中午做了学军中学的模拟题,题目质量很高,感谢出题人……
但是,一中午就做出了一道题……..
依旧有收获,因为这是一道dp题;
刚开始感觉与 友好城市 非常相似,于是考虑sort消除后效性后求lis (还真敢一模一样抄….),然后毫不意外的不对;后来spfa一通瞎搞(…….);
最后又回到了dp上,各种找规律后发现将第二个序列调转之后求最长公共子序列竟然过了样例(虽然后来证明是对的,但是考场上的却是猜的……………

不严谨的证明

于是先仔细的分析一下题目,首先我们假设第一个序列为a[],第二个序列为b[];
若 i , j(数列中的两个数字)这两点对要发生交叉,必须满足i,j两个数字在两序列中
的顺序相反;
那么在我们将其中一个序列调转之后,要求就成为了两数字在序列中的顺序相同;所以最长公共子序列即为最优解。

然后就交上了,70pts,毕竟n^2 的复杂度,然而听说这玩意儿并没有nlogn的求法,所以确定不是正解;


换思路继续搞

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值