CF Round#14

A,B,C水题。

D 描述:求一个树中的两条点不相交路径,使得两条路径长度乘积最大。

为使路径不相交,可以将树分成两部分,分别求出各部分的最长路径。具体做法迭代删去树中一条边,得到两个新树,分别用dfs求出新树中的最长路径求值即可。

附:SPOJ的6717是这道题的升级版

E 描述:数列{A[1],A[2],…A[n]}中每项取值范围是{1,2,3,4}。定义:峰为满足A[i] > A[i-1], A[i+1]的项,谷为满足A[i]<A[i-1],A[i+1]的项。求任意连续两项不相等,且有t个峰,t-1个谷的数列个数。

所谓有t个峰,t-1个谷意味着数列有2t个单调区间,且第一个单调区间为增区间。这样考虑的话,在添加项的时候只需要考虑前面的项。

则可设状态F[i][j][k]表示有i项,j个单调区间,A[i]=k时共有多少解。可以通过j的奇偶性判断最后一段单调区间的增减性,继而再根据新添加的项l与k的大小关系判断是否增加了新的单调区间,确定状态转移。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值