zoukankan      html  css  js  c++  java
  • luogu P3047 [USACO12FEB]Nearby Cows G

    这道题直接设状态不太好做。

    我们先设(g[x][i])表示(x)子树内跟它相距不超过(i)的点的点权之和。这个一遍(dfs)就可以搞定。

    现在的问题是怎么计算非(x)子树内的贡献(我当时想了好久楞是没想出来呜呜呜)。其实很简单,有了(g)数组的辅助,我们现在可以直接设(f[x][i])表示与(x)相距不超过(i)的点的点权之和。转移方程:

    [f[x][i]=f[fa][i-1]-g[x][i-2]+g[x][i] ]

    其中(fa)表示(x)的父亲节点。容易知道根节点的(f)数组等于(g)数组,所以我们只要这样递归下去就可以了,其实这题就是一个简单容斥。

    由于博主比较菜,所以有很多东西待学习,大部分文章会持续更新,另外如果有出错或者不周之处,欢迎大家在评论中指出!
  • 相关阅读:
    数据应用
    Python邮件脚本
    函数
    tab模块
    python登陆,注册小程序
    三元运算+lambda表达式
    计算机基础
    软件测试概要
    asyn_fifo
    perl 对ENV环境变量的使用
  • 原文地址:https://www.cnblogs.com/With-penguin/p/13045853.html
Copyright © 2011-2022 走看看