洛谷P2796 Facer的程序
动态规划
我们看题目后知道这是一棵无根树,要求出有多少子树
我们设$f[u][1]$表示选了当前节点$u$的方案数
相反的$f[u][0]$则为不选中$u$
那么考虑状态转移如下:
f[u][1]=(f[u][1]*(1+f[v][1]))%mod;
f[u][0]=(f[u][0]+(f[v][1]+f[v][0]%mod))%mod;
第二个就不解释了,第一个根据加法原则可以知道
代码实现:
#include<iostream>
#include<cstdio>
#include<algorithm>
#define mod 1000000007
#define N 100007
#define int long long
using namespace std;
struct Edge
{
int to,nxt;
}edge[N<<1];
int head[N],f[N][2];
int n,cnt;
void Add(int x,int y)
{
edge[++cnt].to=y;
edge[cnt].nxt=head[x];
head[x]=cnt;
}
void Dfs(int u,int fa)
{
f[u][1]=1;
for(int i=head[u];i;i=edge[i].nxt)
{
int v=edge[i].to;
if(v==fa)
continue;
Dfs(v,u);
f[u][1]=(f[u][1]*(1+f[v][1]))%mod;
f[u][0]=(f[u][0]+(f[v][1]+f[v][0]%mod))%mod;
}
}
signed main()
{
scanf("%lld",&n);
for(int i=1;i<n;++i)
{
int x,y;
scanf("%lld%lld",&x,&y);
Add(x,y);
Add(y,x);
}
Dfs(1,0);
printf("%lld",(f[1][0]+f[1][1])%mod);
return 0;
}
洛谷P2796 Facer的程序的更多相关文章
- 洛谷 P2796 Facer的程序 题解
题面 一个树形DP, f[i]=表示以i为根可以得到的子树个数: 则f[i]*=(f[j]+1): 初始化f[i]=1; ans=sigma(f[i]); #include <bits/stdc ...
- 洛谷P2707 Facer帮父亲 [优先队列,数学]
题目传送门 Facer帮父亲 题目背景 Facer可是一个孝顺的孩纸呦 题目描述 Facer的父亲是一名经理,现在总是垂头丧气的. Facer问父亲,怎么啦?父亲说,公司出了点问题啊. 公司管理着N个 ...
- 洛谷 P2797 Facer的魔法 解题报告
P2797 Facer的魔法 题意:给你n个数,你可以选若干个数,使得平均数减中位数最大 数据范围:\(n \le 10^5\) 原题CF626E 很容易想到枚举一个中位数,但是如果选取的数字的个数是 ...
- 洛谷P1108 低价购买[DP | LIS方案数]
题目描述 “低价购买”这条建议是在奶牛股票市场取得成功的一半规则.要想被认为是伟大的投资者,你必须遵循以下的问题建议:“低价购买:再低价购买”.每次你购买一支股票,你必须用低于你上次购买它的价格购买它 ...
- 洛谷P1538迎春舞会之数字舞蹈
题目背景 HNSDFZ的同学们为了庆祝春节,准备排练一场舞会. 题目描述 在越来越讲究合作的时代,人们注意的更多的不是个人物的舞姿,而是集体的排列. 为了配合每年的倒计时,同学们决定排出——“数字舞蹈 ...
- [洛谷OJ] P1114 “非常男女”计划
洛谷1114 “非常男女”计划 本题地址:http://www.luogu.org/problem/show?pid=1114 题目描述 近来,初一年的XXX小朋友致力于研究班上同学的配对问题(别想太 ...
- 洛谷OJ P1196 银河英雄传说(带权并查集)
题目描述 公元五八○一年,地球居民迁移至金牛座α第二行星,在那里发表银河联邦 创立宣言,同年改元为宇宙历元年,并开始向银河系深处拓展. 宇宙历七九九年,银河系的两大军事集团在巴米利恩星域爆发战争.泰山 ...
- 洛谷P1017 进制转换
洛谷P1017 进制转换 题目描述 我们可以用这样的方式来表示一个十进制数: 将每个阿拉伯数字乘以一个以该数字所处位置的(值减1)为指数,以10为底数的幂之和的形式.例如:123可表示为 \(1*10 ...
- 洛谷P1214 [USACO1.4]等差数列 Arithmetic Progressions
P1214 [USACO1.4]等差数列 Arithmetic Progressions• o 156通过o 463提交• 题目提供者该用户不存在• 标签USACO• 难度普及+/提高 提交 讨论 题 ...
随机推荐
- 文件锁-fcntl flock lockf
这三个函数的作用都是给文件加锁,那它们有什么区别呢? 首先flock和fcntl是系统调用,而lockf是库函数.lockf实际上是fcntl的封装,所以lockf和fcntl的底层实现是一样的,对文 ...
- 前端vue组件传参
## 路由传参 """ 转跳: <router-link :to="'/course/'+course.id">{{course.name ...
- k8s之网络插件flannel及基于Calico的网络策略
1.k8s网络通信 a.容器间通信:同一个pod内的多个容器间的通信,通过lo即可实现; b.pod之间的通信:pod ip <---> pod ip,pod和pod之间不经过任何转换即可 ...
- 工作单元 — Unit Of Work
在进行数据库添加.修改.删除时,为了保证事务的一致性,即操作要么全部成功,要么全部失败.例如银行A.B两个账户的转账业务.一方失败都会导致事务的不完整性,从而事务回滚.而工作单元模式可以跟踪事务,在操 ...
- C#UDP异步通信
using SetingDemo.LogHelp;using SetingDemo.SingleRowDeclare;using System;using System.Collections.Gen ...
- JS基础_变量的声明提前、函数的声明提前
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- c# internal关键字
对于一些大型的项目,通常由很多个DLL文件组成,引用了这些DLL,就能访问DLL里面的类和类里面的方法.比如,你写了一个记录日志的DLL,任何项目只要引用此DLL就能实现记录日志的功能,这个DLL文件 ...
- Dubbo 配置参数
关闭启动检查 在dubbo多模块项目启动的时候为了并行启动多个服务,缩短启动时间,需要解除模块之间的依赖检测 dubbo.consumer.check=false @Reference(check = ...
- K2 BPM_如何将RPA的价值最大化?_全球领先的工作流引擎
自动化技术让企业能够更有效的利用资源,减少由于人为失误而造成的风险损失.随着科技的进步,实现自动化的途径变得更加多样化. 据Forrester预测,自动化技术将在2019年成为引领数字化转型的前沿技 ...
- iphone SprintBoard部分私有API总结(不支持iOS8)
本文介绍iOS SrpintBoard框架的部分私有API,具体包括: 获取ios上当前正在运行的所有App的bundle id(不管当前程序是在前台还是后台都可以) 获取ios上当前前台运行的App ...