Codeforces 914H Ember and Storm's Tree Game 【DP】*
Codeforces 914H Ember and Storm’s Tree Game
ORZ佬
果然出了一套自闭题
这题让你算出第一个人有必胜策略的方案数
然后我们就发现必胜的条件就是树上的每条路径都是单调或者单峰的
所以我们考虑DP一个每条路径都是单调或单峰的树出来
所以考虑DPf[i][j]" role="presentation" style="position: relative;">f[i][j]f[i][j]表示大小是i的子树根节点的度数是j,并且满足任何一个点都比他的父亲大
那么我们发现这样的情况并不全,但是又可以发现满足任何一个点比他的父亲小和大是等价的
所以我们可以开开心心地开始DP
但是问题又来了
我们在统计一个子树的贡献的时候常常会把编号算重,所以我们可以每次DP累加贡献的时候只考虑编号次小的那个点所在的子树
然后我们可以很方便地累加贡献了,还需要加上组合数,又因为我们发现当前累加的子树根节点的度数大小无关紧要,所以我们直接累加前缀和,用s表示
f(i,k+1)=∑f(i−j,k)×(∑l=1d−1f(j,l))×(i−2j−1)" role="presentation" style="position: relative;">f(i,k+1)=∑f(i−j,k)×(∑d−1l=1f(j,l))×(i−2j−1)f(i,k+1)=∑f(i−j,k)×(∑l=1d−1f(j,l))×(i−2j−1)
但是我们又发现,一棵合法的树有可能有多个合法的根被我们统计,但是我们可以发现所有合法的根一定是一条链,然后我们考虑只在链的一端统计答案就可以了
#include<bits/stdc++.h>
using namespace std;
#define fu(a,b,c) for(int a=b;a<=c;a++)
#define fd(a,b,c) for(int a=b;a>=c;a--)
int read(){
int ans=0,w=1;char c=getchar();
while(!isdigit(c)&&c!='-')c=getchar();
if(c=='-')w=-1,c=getchar();
while(isdigit(c))ans=(ans<<1)+(ans<<3)+c-'0',c=getchar();
return ans*w;
}
#define N 210
#define LL long long
int n,d;
LL ans=0,Mod;
LL c[N][N],f[N][N],s[N][N];
void init(){
fu(i,0,n){
c[i][0]=1;
fu(j,1,i)c[i][j]=(c[i-1][j]+c[i-1][j-1])%Mod;
}
fu(i,0,d)s[1][i]=1;
f[1][0]=1;
}
int main(){
n=read();d=read();Mod=read();
init();
fu(i,2,n){
fu(j,1,i-1)
fu(k,0,d-1)
f[i][k+1]=(s[j][d-1]*c[i-2][j-1]%Mod*f[i-j][k]%Mod+f[i][k+1])%Mod;
fu(j,1,d)s[i][j]=(s[i][j-1]+f[i][j])%Mod;
}
fu(i,0,n-1)
fu(j,0,d)
fu(k,0,d-j)if(k!=1)
ans=(ans+f[i+1][j]*f[n-i][k]%Mod)%Mod;
ans=2ll*n*(n-1)*ans%Mod;
printf("%lld",ans);
return 0;
}
Codeforces 914H Ember and Storm's Tree Game 【DP】*的更多相关文章
- Codeforces gym 101291 M (最长交替子序列)【DP】
<题目链接> 题目大意:给你一段序列,要求你求出该序列的最长交替子序列,所谓最长交替子序列就是,这段序列的相邻三项必须是先递增再递减或者先递减再递增这样交替下去. 解题分析: 这与一道dp ...
- 【CodeForces】914 H. Ember and Storm's Tree Game 动态规划+排列组合
[题目]H. Ember and Storm's Tree Game [题意]Zsnuoの博客 [算法]动态规划+排列组合 [题解]题目本身其实并不难,但是大量干扰因素让题目显得很神秘. 参考:Zsn ...
- [CodeForces - 1225E]Rock Is Push 【dp】【前缀和】
[CodeForces - 1225E]Rock Is Push [dp][前缀和] 标签:题解 codeforces题解 dp 前缀和 题目描述 Time limit 2000 ms Memory ...
- 【codeforces 914H】Ember and Storm's Tree Game
原题链接 Description Ember和Storm正在玩游戏.首先,Ember构造一棵n个节点且每个节点度数不超过d的带节点编号的树T.然后,Storm选择两个不同的节点u和v,并写下从u到v路 ...
- Codeforces 804D Expected diameter of a tree(树形DP+期望)
[题目链接] http://codeforces.com/contest/804/problem/D [题目大意] 给你一个森林,每次询问给出u,v, 从u所在连通块中随机选出一个点与v所在连通块中随 ...
- 【dp】codeforces C. Vladik and Memorable Trip
http://codeforces.com/contest/811/problem/C [题意] 给定一个自然数序列,在这个序列中找出几个不相交段,使得每个段的异或值之和相加最大. 段的异或值这样定义 ...
- Codeforces 658C Bear and Forgotten Tree 3【构造】
题目链接: http://codeforces.com/contest/658/problem/C 题意: 给定结点数,树的直径(两点的最长距离),树的高度(1号结点距离其他结点的最长距离),写出树边 ...
- Storm配置项详解【转】
Storm配置项详解 ——阿里数据平台技术博客:storm配置项详解 什么是Storm? Storm是twitter开源的一套实时数据处理框架,基于该框架你可以通过简单的编程来实现对数据流的实时处理变 ...
- Codeforces Beta Round #83 (Div. 1 Only)题解【ABCD】
Codeforces Beta Round #83 (Div. 1 Only) A. Dorm Water Supply 题意 给你一个n点m边的图,保证每个点的入度和出度最多为1 如果这个点入度为0 ...
随机推荐
- python2.7.10 VS2015编译方法
打开 Python-2.7.10\PCbuild目录 然后设置只编译python和pythoncore: 好了,编译试一试. 出现了好几个错误.由于 VS2015 取消了 timezone 的定义,改 ...
- 前端要不要学数据结构&算法
我们都知道前端开发工程师更多偏向 DOM 渲染和 DOM 交互操作,随之 Node 的推广前端工程师也可以完成服务端开发.对于服务端开发而言大家都觉得数据结构和算法是基础,非学不可.所以正在进行 No ...
- es6之Iterator
1.任何数据结构只要部署了Iterator接口(本质是一个指针对象),也就是部署了Symbol.iterator属性,便可以完成遍历操作:数组原生就具备Iterator接口,就可以用for...of遍 ...
- sql数据类型转换函数
1.CAST()CAST (<expression> AS <data_ type>[ length ]) 2.CONVERT()CONVERT (<data_ type ...
- Java 注解(Annotation)秒懂,你可以这样学,
文章开头先引入一处图片. 这处图片引自老罗的博客.为了避免不必要的麻烦,首先声明我个人比较尊敬老罗的.至于为什么放这张图,自然是为本篇博文服务,接下来我自会说明.好了,可以开始今天的博文了. Anno ...
- Les13 性能管理
目标 使用Oracle Enterprise Manager监视性能 使用自动内存管理(AMM) 使用内存指导调整内存缓冲区的大小 查看与性能相关的动态视图 排除无效和不可用对象产生的故障 性能监视 ...
- 如何成为 Python 高手
这篇文章主要是对我收集的一些文章的摘要.因为已经有很多比我有才华的人写出了大量关于如何成为优秀Python程序员的好文章. 我的总结主要集中在四个基本题目上:函数式编程,性能,测试,编码规范.如果一个 ...
- bzoj 4627 值域线段树
4627: [BeiJing2016]回转寿司 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 523 Solved: 227[Submit][Sta ...
- 新旧版ubuntu镜像免费下载
链接:https://pan.baidu.com/s/1hUNfiyA_Npj9QQ0vNLJ_Xw 密码:6k6i
- yii2高级模板安装
通过 Composer 安装 如果还没有安装 Composer,在 Linux 和 Mac OS X 中可以运行如下命令: curl -sS https://getcomposer.org/insta ...