链接Wannafly挑战赛27 C蓝魔法师

  • 给出一棵树,求有多少种删边方案,使得删后的图每个连通块大小小于等于\(k\),\(n,k\leq 2*10^3\)
  • 假设我们正在考虑\(i\)这个子树,那么不和\(i\)连边的内部节点所在联通块大小是不会再发生改变了,所以我们根本不关心内部联通情况,只关心\(i\)的联通情况,因为\(i\)有可能会和父亲连边形成更大的联通块。
  • 考虑\(f_{i,j}\)表示考虑子树\(i\),过子树\(i\)的联通块大小为\(j\)的方案数。
  • 这个是考试的时候设的状态,其实这个说的不太严谨,应该是\(f_{i,j}\)表示考虑子树\(i\),当前子树\(i\)对父亲的联通块贡献\(j\)的方案数。
  • 转移就是老套路了$$f_{i,u+v}=\sum f_{i,u}*f_{son,v}$$

\[f_{i,0}=\sum_{j\leq K} f_{i,j}
\]

\[f_{i,j}=0,j>K
\]

  • 答案就是\(f_{1,0}\)
#include<bits/stdc++.h>
#define R register int
#define ll long long
using namespace std;
const int N=2501;
const int M=5001;
const int mod=998244353;
int n,m,u,v,cnt,tmp[N],f[N][N],g[N][N],hd[N],to[M],nt[M],sz[N];
void link(R f,R t){nt[++cnt]=hd[f],to[cnt]=t,hd[f]=cnt;}
int gi(){
ll x=0,k=1;char c=getchar();
while((c<'0'||c>'9')&&c!='-')c=getchar();
if(c=='-')k=-1,c=getchar();
while(c>='0'&&c<='9')x=(x<<3)+(x<<1)+c-'0',c=getchar();
return x*k;
}
void add(R &x,R y){x=(x+y>=mod?x+y-mod:x+y);}
void Dfs(R i,R fm){
sz[i]=1,f[i][1]=1;
for(R k=hd[i];k;k=nt[k])
if(to[k]!=fm){
Dfs(to[k],i);
for(R j=1;j<=sz[i]+sz[to[k]];++j)tmp[j]=0;//f[i][j];
for(R u=0;u<=sz[i];++u)
for(R v=0;v<=sz[to[k]];++v)
add(tmp[u+v],1ll*f[to[k]][v]*f[i][u]%mod);
sz[i]+=sz[to[k]];
for(R j=1;j<=sz[i];++j)f[i][j]=tmp[j];
}
f[i][0]=0;
for(R j=1;j<=m;++j)add(f[i][0],f[i][j]);
for(R j=m+1;j<=sz[i];++j)f[i][j]=0;
}
int main(){
n=gi(),m=gi();
for(R i=1;i<n;++i)
u=gi(),v=gi(),link(u,v),link(v,u);
Dfs(1,0),cout<<f[1][0]<<endl;
return 0;
}

Wannafly挑战赛27 C蓝魔法师的更多相关文章

  1. Wannafly挑战赛27 D绿魔法师

    链接Wannafly挑战赛27 D绿魔法师 一个空的可重集合\(S\),\(n\)次操作,每次操作给出\(x,k,p\),要求支持下列操作: 1.在\(S\)中加入\(x\). 2.求\[\sum_{ ...

  2. 牛客 Wannafly挑战赛27 D 绿魔法师

    传送门 \(\color{green}{solution}\) 分析下,在\(1e5+1\)内,一个数的约数个数最多为\(2^{6}\)个,所以我们可以考虑枚举约数 复杂度\(O(N^{2^{6 \t ...

  3. Wannafly挑战赛27

    Wannafly挑战赛27 我打的第一场$Wannafly$是第25场,$T2$竟然出了一个几何题?而且还把我好不容易升上绿的$Rating$又降回了蓝名...之后再不敢打$Wannafly$了. 由 ...

  4. 牛客网 Wannafly挑战赛27 蓝魔法师

    蓝魔法师 链接: https://www.nowcoder.com/acm/contest/215/C 来源:牛客网 题目描述 "你,你认错人了.我真的,真的不是食人魔."--蓝魔 ...

  5. Wannafly挑战赛25游记

    Wannafly挑战赛25游记 A - 因子 题目大意: 令\(x=n!(n\le10^{12})\),给定一大于\(1\)的正整数\(p(p\le10000)\)求一个\(k\)使得\(p^k|x\ ...

  6. Wannafly 挑战赛 19 参考题解

    这一次的 Wannafly 挑战赛题目是我出的,除了第一题,剩余的题目好像对大部分算法竞赛者来说好像都不是特别友好,但是个人感觉题目质量还是过得去的,下面是题目链接以及题解. [题目链接] Wanna ...

  7. Wannafly挑战赛21A

    题目链接 Wannafly挑战赛21A 题解 代码 #include <cstdio> #include <cmath> #define MAX 1000005 #define ...

  8. Wannafly挑战赛24游记

    Wannafly挑战赛24游记 A - 石子游戏 题目大意: A和B两人玩游戏,总共有\(n(n\le10^4)\)堆石子,轮流进行一些操作,不能进行下去的人则输掉这局游戏.操作包含以下两种: 把石子 ...

  9. Wannafly挑战赛25C 期望操作数

    Wannafly挑战赛25C 期望操作数 简单题啦 \(f[i]=\frac{\sum_{j<=i}f[j]}{i}+1\) \(f[i]=\frac{f[i]}{i}+\frac{\sum_{ ...

随机推荐

  1. 原生javascript兼容性总结

    1.addEventListener() :方法用于向指定元素添加事件句柄.// Internet Explorer 8 及更早IE版本不支持,Opera 7.0 及 Opera 更早版本也不支持. ...

  2. Vertical Center TextView . 竖直居中的UITextView

    @interface VerticalCenterTextView : UITextView @end @implementation VerticalCenterTextView - (void) ...

  3. create react app的 css loader 进行局部配置

    { test: cssRegex, exclude: cssModuleRegex, use: getStyleLoaders({ importLoaders: 1, sourceMap: isEnv ...

  4. LongAccumulator 源码分析

    LongAccumulator LongAccumulator 能解决什么问题?什么时候使用 LongAccumulator? 1)LongAccumulator 的逻辑和 LongAdder 基本类 ...

  5. 用Vue来实现购物车功能(二)

    这个小demo具有添加商品进购物车 .增加购物车内商品的数量.减少购物车内商品的数量.计算一类商品的总价.以及计算所有商品的总价 首先看目录结构 因为我们的Tab.vue  Car.vue 以及Car ...

  6. js-用判断音乐或图片是否加载完成的方式来控制页面的现实

    判断页面加载,加完完成后,内容页显示,加载条隐藏 百度搜索方法很多,大多都是: document.onreadystatechange = function() //当页面加载状态改变的时候执行fun ...

  7. 学习《Oracle PL/SQL 实例讲解 原书第5版》----创建账户

    通过readme.pdf创建student账户. 以下用sys账户登录时都是sysdba. 一.PL/SQL 登录oracle. SYS/123  AS SYSDBA 账户名:sys:密码:123:作 ...

  8. spring-data-elasticsearch使用出现的一些小问题

    问题一failed to load elasticsearch nodes : org.elasticsearch.index.mapper.MapperParsingException: No ty ...

  9. Java判断一个类里是否存在某个属性

    Java判断一个类里是否存在某个属性 测试pojo类,比方我有个User类 @Getter @Setter public class User { private Long id; private S ...

  10. ToolProvider.getSystemJavaCompiler()方法空指针的排坑

    起因: 我在做一个编译Java代码的功能,基本写的差不多了,我就想把它打包部署到我服务器上跑一跑,但是这不做不知道,一做果然就出了问题.我在IDEA上跑一点问题都没有,但是打包成Jar后,后台就显示空 ...