20160413模拟

来源:互联网 发布:minitool数据恢复工具 编辑:程序博客网 时间:2024/06/05 04:20

T1,T2太水就不提了

T3 科技树(tec)

  • 题目大意
    • 给定一个n行的倒三角,第i行有ni+1个位置,每个位置有一个价值,获得(i,j)的价值需要先获得(i1,j)(i1,j+1)的价值,选定m个位置,询问最大价值和
    • n50,m500
  • 题解
    • 当选定一个位置(i,j)后,(i1,j),(i2,j)....(1,j)(i1,j+1),(i2,j+2)...(1,?)也就是以(i,j)为顶点的直角三角形一定都会被选
    • 那么最终选的点的下轮廓一定是两边是最高层直线,中间是折线
    • 我们dp出轮廓线及其上面的所有点之和的最大值
    • dp[i,j,k]:(i,j)为轮廓线上的点,选了k个点的最大价值和
    • sum[i,j]=val[i,j]+val[i1,j]+...val[1,j]
    • dp[i,j,k]=max{dp[i1,j,k1]+val[i,j],dp[i+1,j1,ki]+sum[i,j]}
    • ans=dp[0,n,m]
  • CODE
0 0