BC#76 C_HDU5647 DZY Loves Connecting 树形DP
来源:互联网 发布:系统还原数据恢复 编辑:程序博客网 时间:2024/05/22 02:27
比赛的时候没想出来,现在发现还是一个经典的树形DP
首先用size[i]表示节点i对答案的贡献
同时为了推倒方便,用f[i]表示以i为根的子树的数目
那么我们考虑当i的子节点j加入时,对答案的贡献
首先,加入j时,会有f[i] * f[j]个新的子树加入,那么计算对答案的贡献
之前的size[i]已经被计算过一次,加入j之后,对于答案的贡献是size[i] * f[j]
此外,还需要统计右边的数目那就是f[i] * size[j]
size[i] = size[i] * (1 + f[j]) + size[j] * f[i]就是总的递推式了
#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>#define ll long long#define rep(i, j, k) for(int i = j; i <= k; i++)#define mod 1000000007#define dp fusing namespace std;int n, father[200500];ll size[200500], f[200500], ans = 0;int main(){int Case;cin >> Case;while (Case--){ans = 0;scanf ("%d", &n);rep (i, 2, n)scanf ("%d", &father[i]);rep (i, 1, n)f[i] = size[i] = 1;for (int i = n; i >= 1; i--){int now = father[i];size[now] += (size[i] * f[now] % mod) + (size[now] * f[i] % mod);size[now] %= mod;f[now] += f[now] * f[i] % mod;f[now] %= mod;}rep (i, 1, n)ans = (ans + size[i]) % mod;cout << ans << endl;}return 0;}
0 0
- BC#76 C_HDU5647 DZY Loves Connecting 树形DP
- HDU 5647 - DZY Loves Connecting (树形dp)
- hdu5647 DZY Loves Connecting (树形dp)
- hdu 5647 DZY Loves Connecting (树形dp)
- HDU-5647 DZY Loves Connecting(树形dp)
- HDU-5647 DZY Loves Connecting(树形dp)
- 【HDU5647 BestCoder Round 76 (div1)B】【树形DP】DZY Loves Connecting 一棵树的所有生成子树的大小乘积
- 树型dp hdu5647 DZY Loves Connecting
- 【HDU 5647】DZY Loves Connecting(树DP)
- 【HDU5647】DZY Loves Connecting【TreeDP】
- BC DZY Loves Topological Sorting
- BC#76.2DZY Loves Balls
- HDU 5646 DZY Loves Partition(BC)
- DZY Loves Sequences 预处理 dp
- 【BC-2016.3.19】DZY Loves Balls(水)
- hdu 5194 DZY Loves Balls (dp)
- Codeforces 446A DZY Loves Sequences【dp】
- bc 4.2 1002 CA Loves GCD dp
- CCS3.3 IO文件增加探针并显示图形的方法
- 架构设计:生产者/消费者模式 第3页:队列缓冲区
- Android初试--Android中的Service简介(2)
- 关于USB OTG HNP和SRP的基本概念
- 2016年第七届蓝桥杯C/C++程序设计本科B组省赛 交换瓶子(编程大题)
- BC#76 C_HDU5647 DZY Loves Connecting 树形DP
- java常见内存溢出(OOM)解决方案
- ACM练习笔记
- 深入理解 GCD(二)
- 等等 python 爬虫
- 【Android 总结】Android 知识点
- Hadoop权限管理
- 本地 eclipse 远程调试服务器上的 tomcat
- 2016年第七届蓝桥杯C/C++程序设计本科B组省赛 最大比例(编程大题)