题目链接 Bear and Tree Jumps

考虑树形DP。$c(i, j)$表示$i$最少加上多少后能被$j$整除。

在这里我们要算出所有$c(i, k)$的和。

其中$i$代表每个点对的距离,$k$为输入的$k$值。

$f[i][j]$表示以$i$为根结点,深度对$k$取模为$j$的点的个数。

状态转移时$f[x][i]$一边更新一边和刚刚计算出的$f[u][j]$统计答案。

具体细节可以看代码。

 #include <bits/stdc++.h>

 using namespace std;

 #define rep(i, a, b)    for (int i(a); i <= (b); ++i)

 const int N = ;
int n, k;
long long sum[N], f[N][], ans = ;
vector <int> v[N]; void dfs(int x, int fa, int dep){
f[x][dep % k] = sum[x] = ; //初始化
for (auto u : v[x]){
if (u == fa) continue;
dfs(u, x, dep + );
rep(i, , k - ) rep(j, , k - ){
int dis = ((i + j) % k - ((dep * ) % k) + k) % k;
int t = ( * k - dis) % k;
ans += t * f[x][i] * f[u][j]; //这一步求出要被k整除则还需补多少的总和 (1)
} rep(i, , k - ) f[x][i] += f[u][i];
sum[x] += sum[u];
ans += (n - sum[u]) * sum[u]; //若没有(1)则这一步求的是树上所有点两两距离和 (2)
}
} int main(){ scanf("%d%d", &n, &k);
rep(i, , n - ){
int x, y;
scanf("%d%d", &x, &y);
v[x].push_back(y);
v[y].push_back(x);
} dfs(, , );
printf("%lld\n", ans / k); //最后除以k
return ;
}

最新文章

  1. 在WebApi中基于Owin OAuth使用授权发放Token
  2. 044医疗项目-模块四:采购单模块—采购单保存(Dao,Service,Action三层)
  3. iOS开发——UI进阶篇(十八)核心动画小例子,转盘(裁剪图片、自定义按钮、旋转)图片折叠、音量震动条、倒影、粒子效果
  4. NYOJ题目1047欧几里得
  5. HashMap封装的数据用循环快速添加进list中产生的数据集全部相同的问题
  6. 全新重装win8.1系统后 配置开发及办公环境步骤
  7. [CareerCup] 7.3 Line Intersection 直线相交
  8. 在Hadoop伪分布式模式下安装Hive(derby,mysql)
  9. javascript中sleep等待实现
  10. Centos7安装Docker Engine
  11. jquery select三级联动
  12. html(第一天,div+css)
  13. 基于visual Studio2013解决C语言竞赛题之0405阶乘求和
  14. map size mismatch; abort
  15. Scala开发环境搭建与资源推荐
  16. Spring Boot环境下出现No operations allowed after connection close错误
  17. tangent space与object space
  18. C#/对线程的认识
  19. Robot Framework+python的安装,配置,环境搭建(纯白篇)
  20. [POJ2976] Dropping tests

热门文章

  1. Asp.net Mvc Action重定向总结
  2. Redis实现之对象(三)
  3. 54、edittext输入类型限制为ip,inputType应该如何设置
  4. java如何建项目
  5. Codeforces #990E Post Lamp
  6. ZOJ 2676 Network Wars(最优比例最小割)
  7. 2017年浙江工业大学之江学院程序设计竞赛决赛 I: qwb VS 去污棒(可持久化Trie+离线)
  8. [luoguP2224] [HNOI2001]产品加工(背包DP)
  9. BZOJ2916 [Poi1997]Monochromatic Triangles 数论
  10. Spring MVC @PathVariable 特殊字符