正题

题目大意:https://www.luogu.org/problem/P2796


题目大意

求一棵树中有多少个子树。


解题思路

考虑dpdpdp。
fif_ifi​表示已iii这个点为根的子树个数。
动态转移方程fx=∏x−>y(fy+1)f_x=\prod_{x->y}(f_y+1)fx​=x−>y∏​(fy​+1)

答案就是∑i=1nfi\sum_{i=1}^nf_ii=1∑n​fi​


codecodecode

#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
const ll N=110000,XJQ=1e9+7;
struct node{ll to,next;
}a[N*2];
ll n,ls[N],f[N],tot,ans;
void addl(ll x,ll y)
{a[++tot].to=y;a[tot].next=ls[x];ls[x]=tot;
}
void dp(ll x,ll fa)
{f[x]=1;for(ll i=ls[x];i;i=a[i].next){ll y=a[i].to;if(y==fa) continue;dp(y,x);f[x]=f[x]*(f[y]+1)%XJQ;}
}
int main()
{scanf("%lld",&n);for(ll i=1;i<n;i++){ll x,y;scanf("%lld%lld",&x,&y);addl(x,y);addl(y,x);}dp(1,0);for(ll i=1;i<=n;i++)(ans+=f[i])%=XJQ;printf("%lld",ans);
}

P2796-Facer的程序【dp】相关推荐

  1. 编程精粹 --Microsoft编写优质无错C程序秘诀

    献给我的妻子Beth, 以及我的双亲Joseph和Julia Maguire ────为了他们的爱和支持 序 1986年,在为几家小公司咨询和工作了10年之后为了获得编写Macintosh应用程序的经 ...

  2. Leetcode动态规划部分典型题目分类及总结

    参考内容 https://leetcode-cn.com/problems/longest-palindromic-substring/solution/zhong-xin-kuo-san-dong- ...

  3. 100道Java高频面试题(阿里面试官整理)

    我分享文章的时候,有个读者回复说他去年就关注了我的微信公众号,打算看完我的所有文章,然后去面试,结果我后来很长时间不更新了...所以为了弥补一直等我的娃儿们,给大家的金三银四准备了100道花时间准备的 ...

  4. Maximum Tape Utilization Ratio

    题目 设有n 个程序{1,2,-, n }要存放在长度为L的磁带上.程序i存放在磁带上的长度是li ,1 < = i < = n. 程序存储问题要求确定这n 个程序在磁带上的一个存储方案, ...

  5. Swustoj(594)Maximum Tape Utilization Ratio(最容易懂的题解)

    Maximum Tape Utilization Ratio  1000(ms)  65535(kb)  917 / 3074 Tags: 贪婪策略 设有n 个程序{1,2,-, n }要存放在长度为 ...

  6. POCO C++库学习和分析 -- 序

    POCO C++库学习和分析 -- 序 1. POCO库概述: POCO是一个C++的开源库集.同一般的C++库相比,POCO的特点是提供了整一个应用框架.如果要做C++程序应用框架的快速开发,我觉得 ...

  7. 程序员面试金典 - 面试题 08.13. 堆箱子(DP)

    1. 题目 堆箱子.给你一堆n个箱子,箱子宽 wi.深 di.高 hi. 箱子不能翻转,将箱子堆起来时,下面箱子的宽度.高度和深度必须大于上面的箱子. 实现一种方法,搭出最高的一堆箱子.箱堆的高度为每 ...

  8. 程序员面试金典 - 面试题 17.08. 马戏团人塔(最长上升子序 DP/二分查找)

    文章目录 1. 题目 2. 解题 2.1 超时解 2.2 二分查找 1. 题目 有个马戏团正在设计叠罗汉的表演节目,一个人要站在另一人的肩膀上.出于实际和美观的考虑,在上面的人要比下面的人矮一点且轻一 ...

  9. Android 开发 -- 开发第一个安卓程序、Android UI开发(布局的创建:相对布局和线性布局、控件单位:px pt dp sp、常用控件 、常见对话框、ListView)

    文章目录 1. 开发第一个Hello World程序 1.1 开发程序 1.2 认识程序中的文件 1.3 Android程序结构 1.4 安卓程序打包 2. Android UI开发 2.1 布局的创 ...

最新文章

  1. ASP.NET2.0 遍历文件夹下所有图片【月儿原创】
  2. html语言星号,如何使HTML代码,输入的东西星号显示出来
  3. 92.芯片组 93.北桥 94.南桥
  4. 科大星云诗社动态20210822
  5. [scala-spark]1. Spark vs Hadoop 及 基础
  6. 深入了解asp.net框架。生命周期以及事件处理机制
  7. 哄骗DB2look 重新创立优化器访问筹划(3)
  8. 社交网络登录失败 当尝试用您的社交网络账号进行第三方登录时,发生了一个错误。
  9. 第一周小组博客作业——1701班5组
  10. 在Linux上启动oracle 11g OEM
  11. layui-弹出层中如何关闭窗口
  12. hello bash
  13. 威马汽车创始人沈晖:10万以下的不能叫智能电动汽车
  14. NSX控制平面和静态路由更新流程1
  15. 中功率继电器行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  16. 高考分数出来了,计算机专业选择那个方向更香?
  17. moss form验证 配置文件关键部分
  18. 有哪些让程序员受益终生的建议
  19. 统计方法在自然语言处理中的应用(统计自然语言处理宗成庆第二版完结)
  20. 云计算的应用解决方案

热门文章

  1. 面试避坑手册之 Java字节流和字符流总结IO流!
  2. kswapd0 挖矿_bioset linux_linux bioset 进程 腾讯云
  3. SimpleXMLRPC_python xmlrpclib SimpleXMLRPCServer 模块
  4. compress后的bytearray再decode变大_笔记本电脑风扇噪音变大的原因及其解决办法
  5. matlab编程数字信号,MATLAB--数字信号实验.doc
  6. spring的钩子_spring提供的钩子,你知道哪些
  7. 一文了解贪心算法和回溯算法在前端中的应用
  8. [汇编语言]实验二:字的传送
  9. [PAT乙级]1023 组个最小数
  10. LeetCode 1122 数组的相对排序-简单-unordered_map容器的应用