首页 > 其他分享 >CF960F

CF960F

时间:2023-05-07 10:34:49浏览次数:37  
标签:有向图 max CF960F LIS 权值 加边

首先,本题的本质是有向图的 LIS 问题,按照题目输入的顺序依次加边,设 \(f_{i,j}\) 表示以 \(i\) 结尾,路径权值的最大值为 \(j\) 的最长链的长度,有状态转移方程 \(f_{i,j}=\max(f_{k,s})+1(k\to i,s<j,val(k\to j)=k)\),直接转移时间空间复杂度直接爆炸,考虑用动态加点线段树维护 \(f_{i,j}\),即加入一条 \(i\to j\),且权值为 \(k\) 的边时,有 \(f_{j,k}=\max_{x=0}^{k-1}(f_{i,x})+1\),区间查询即可。时间复杂度为 \(O(m\log V)\)。代码

标签:有向图,max,CF960F,LIS,权值,加边
From: https://www.cnblogs.com/dadidididi/p/17378975.html

相关文章

  • CF960F Pathwalks | 线段树优化DP
    题目设\(dp[x,w]\)为以结点\(x\)为结尾,且最后一条边边权为\(w\)的最长路径长度。考虑根据顺序加边,对于边\((u,v)\),更新\[dp[v,w]=\max_{w'<w}\{dp[u,w']\}+1\]对于每个节点,建一棵线段树,维护\(dp[x]\),这样每次更新\(dp[v,w]\)就相当于在\(dp[u]\)所对应的线段树中查询\([......