当前位置: 首页 > news >正文

北京网站建设设计有没有专门做渔具的网站

北京网站建设设计,有没有专门做渔具的网站,招平面设计师的招聘信息,多语种外贸网站建设https://atcoder.jp/contests/arc165/tasks/arc165_e 考虑一个常见套路,我们对每个连通块统计其概率,设为 p ( T ) p(T) p(T),则答案为 ∑ ∣ T ∣ > k p ( T ) \sum_{|T|>k} p(T) ∣T∣>k∑​p(T) 可以想成对于每个大小大于 k …

https://atcoder.jp/contests/arc165/tasks/arc165_e

考虑一个常见套路,我们对每个连通块统计其概率,设为 p ( T ) p(T) p(T),则答案为

∑ ∣ T ∣ > k p ( T ) \sum_{|T|>k} p(T) T>kp(T)

可以想成对于每个大小大于 k k k 的连通块,都要至少选一个点,也就是进行一次操作。所以我们就统计所以这么大的连通块存在的概率,乘上1,就是其期望。总期望就是单独的期望之和。

然后一些显然的性质,一个连通块必然是树上的一个子树弄走它的一堆子树。而且要形成这样一个连通块,连通块内的点一定没有被选,而且和连通块相邻的所有点一定全部被选过。

那么我们现在就发现决定一个连通块贡献的性质。有了这个性质,我们就可以合并等价类了。

在合并之前,我们先考虑 n n n 个点的块, m m m 个点相连的概率。这 m m m 个点必然早于这 n n n 个点先被选。

但我们发现操作的先后可能影响一个点是否被选。

有一种常见套路,就是我们直接枚举操作顺序,这个操作顺序代表中如果某个点所在连通块大小小于等于 k k k,我们可以视为跳过这个操作。所以对于任意 n n n 个点的操作方案为 n ! n! n!

所以 n n n 个点的块, m m m 个点相连的概率为 n ! m ! ( n + m ) ! \frac{n!m!}{(n+m)!} (n+m)!n!m!

这一步也可以操作官方题解的转化来理解:

在这里插入图片描述

然后回到前面那个问题,如何计算合法 ( n , m ) (n,m) (n,m) 对呢?

因为这是一棵树,直接树形dp就行。数据范围就100,暴力转移即可。

复杂度 O ( n 4 ) O(n^4) O(n4)

#include<bits/stdc++.h>
using namespace std;
#define int long long
inline int read(){int x=0,f=1;char ch=getchar(); while(ch<'0'||
ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){
x=(x<<1)+(x<<3)+(ch^48);ch=getchar();}return x*f;}
#define Z(x) (x)*(x)
#define pb push_back
//mt19937 rand(time(0));
//mt19937_64 rand(time(0));
//srand(time(0));
#define N 210
//#define M
#define mo 998244353
int pw(int a, int b) {int ans=1; while(b) {if(b&1) ans*=a; b>>=1; a*=a; ans%=mo; a%=mo; }return ans; 
}
int n, m, i, j, k, T;
int dp[N][N][N], f[N][N], w[N]; 
int u, v, x, fac[N], inv[N], ans; 
vector<int>G[N]; void Mod(int &a) {a=(a%mo+mo)%mo; 
}void dfs(int x, int fa) {dp[x][1][0]=w[x]=1; int a, b, c, d; for(int y : G[x]) {if(y==fa) continue; dfs(y, x); for(a=0; a<=w[x]+w[y]; ++a)for(b=0; b<=w[x]+w[y]; ++b) f[a][b]=dp[x][a][b], dp[x][a][b]=0; for(a=0; a<=w[x]; ++a)for(b=0; b<=w[x]; ++b)  {dp[x][a][b+1]+=f[a][b]; Mod(dp[x][a][b+1]); for(c=0; c<=w[y]; ++c)for(d=0; d<=w[y]; ++d) {dp[x][a+c][b+d]+=f[a][b]*dp[y][c][d]%mo; Mod(dp[x][a+c][b+d]); }}w[x]+=w[y]; }
}signed main()
{
//	freopen("in.txt", "r", stdin);
//	freopen("out.txt", "w", stdout);
//	T=read();
//	while(T--) {
//
//	}n=read(); m=read(); for(i=fac[0]=1; i<=2*n+5; ++i) fac[i]=fac[i-1]*i%mo; inv[2*n+5]=pw(fac[2*n+5], mo-2); for(i=2*n+4; i>=0; --i) inv[i]=inv[i+1]*(i+1)%mo; for(i=1; i<n; ++i) {u=read(); v=read(); G[u].pb(v); G[v].pb(u); }dfs(1, 0); for(x=1; x<=n; ++x) for(i=m+1; i<=n; ++i)for(j=0; j<=n; ++j) {u=i; v=j+(x!=1); if(dp[x][i][j])ans+=fac[u]*fac[v]%mo*inv[u+v]%mo*dp[x][i][j]%mo; Mod(ans); }printf("%lld", ans); return 0;
}
http://www.dtcms.com/a/402219.html

相关文章:

  • 网上商城网站系统wordpress手机底部导航栏设置
  • 企业网站建设公司公司app官网网站建设
  • 常州建设安全员报名网站wordpress 安装 畅言
  • 用织梦模板做网站网站 app
  • 做ssp用什么建网站wap网站做视频直播
  • 厦门模板建站系统wordpress 显示不正常
  • 丹寇服饰官方网站家用电器网页设计实训报告
  • 济宁 创意大厦 网站建设网络科技公司经营范围参考
  • 大型门户网站建设 费用WordPress按钮跳转插件
  • 长沙企业网站设计网站办事服务建设情况
  • 手机网站表单验证网站建站公司一站式服务
  • 苏州建设工程招标网站做dna胎儿亲子鉴定网站
  • 珠海专业网站建设费用网络直播网站开发
  • 自主网站软件平台下载
  • 全景网站制作中国交通建设集团有限公司级别
  • 蒙牛网站建设方案制作单页网站教程
  • 免费优化网站排名湖南住房城乡建设部网站
  • 网站开发.net旅游景区网站建设的意义
  • 伪装学渣无极网站网站多语言 设计
  • 网站设计与建设pptjsp网站开发详解下载
  • 建设银行储蓄卡申请网站wordpress 多个侧边栏
  • 二次网站开发平台建设部网站法律法规
  • 网站开发api平台高州网站建设公司
  • 赤峰酒店网站建设哪家便宜目前网站建设用哪种语言
  • 站长统计 站长统计石家庄设计网站公司
  • 怎样做网站搜索推广电话成都wordpress 4.8教程
  • 哈尔滨网站制作前景镇江积分优化
  • 网站建设谈单情景对话专业优定软件网站建设
  • 网站页面描述工商网上核名系统
  • 市网站开发公司网站建设销售好做嘛