p5405 [CTS2019]氪金手游

题目大意

题意狗屁不通

看毛子语都比看这个题面强

分析

我们假设这棵树是一个内向树

那么我们可以轻易的得到dp[x][i]表示x点子树和为i的期望

转移只需枚举当前期望大小和子树期望大小即可

但是由于边的方向不一定

所以这棵树上存在反向边

我们可以容斥有i个边不合法的情况

因此对于一个反向边要么x点加上关系合法,将子树分离的贡献

要么这个边算是不合法的

对于这种情况我们可以直接减掉贡献

因为我们知道这个贡献已经是0~i的容斥情况

而这个减号相当于*-1

可以完成容斥

复杂度O(n^2)

代码

#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define pb push_back
#define mp make_pair
const int mod = 998244353;
int dp[1100][3300],n,m,inv[3300],res[3300],siz[1100];
vector<pair<int,int> >v[1100];
inline int pw(int x,int p){
    int ans=1;
    while(p){
      if(p&1)ans=1ll*ans*x%mod;
      x=1ll*x*x%mod;
      p>>=1;
    }
    return ans;
}
inline void dfs(int x,int fa){
    siz[x]=1;
    for(int i=0;i<v[x].size();i++)
      if(v[x][i].fi!=fa){
          int y=v[x][i].fi,z=v[x][i].se;
          dfs(y,x);
          for(int j=0;j<=3*siz[x];j++)
            for(int k=0;k<=3*siz[y];k++){
                int sum=1ll*dp[x][j]*dp[y][k]%mod;
                if(z)res[j+k]=(res[j+k]+sum)%mod;
                  else res[j+k]=(res[j+k]-sum+mod)%mod,res[j]=(res[j]+sum)%mod;
          }
          siz[x]+=siz[y];
          for(int j=0;j<=3*siz[x];j++)dp[x][j]=res[j],res[j]=0;
      }
    for(int i=0;i<=3*siz[x];i++)dp[x][i]=1ll*dp[x][i]*inv[i]%mod;
}
int main(){
    int i,j,k,ans=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++){
      int x,y,z,iv;
      scanf("%d%d%d",&x,&y,&z);
      iv=pw(x+y+z,mod-2);
      dp[i][1]=1ll*x*iv%mod;
      dp[i][2]=2ll*y*iv%mod;
      dp[i][3]=3ll*z*iv%mod;
    }
    for(i=1;i<n;i++){
      int x,y;
      scanf("%d%d",&x,&y);
      v[x].pb(mp(y,1));
      v[y].pb(mp(x,0));
    }
    inv[0]=inv[1]=1;
    for(i=2;i<=3*n;i++)inv[i]=pw(i,mod-2);
    dfs(1,0);
    for(i=0;i<=3*n;i++)ans=(ans+dp[1][i])%mod;
    printf("%d\n",ans);
    return 0;
}

原文地址:https://www.cnblogs.com/yzxverygood/p/11519598.html

时间: 2024-07-29 07:57:02

p5405 [CTS2019]氪金手游的相关文章

[CTS2019]氪金手游(容斥+树形背包DP)

降智好题.本蒟蒻VP时没想到怎么做被题面迷惑了,只会20分的“好”成绩.简直自闭了. 首先显然度为0的点是白给的,根据等比数列求和公式即可求得.然后考虑这个树如果是一颗外向树,就是每个点先父亲再自己.然后直接DP,令f[i][j]表示子树i内Σw=j的概率,转移时直接用背包转移一发即可.边是正向的直接转移,反向的加上去掉该限制的答案,并减去反向的答案.复杂度显然是O(n2) #include<bits/stdc++.h> using namespace std; const int N=101

Luogu5405 CTS2019氪金手游(容斥原理+树形dp)

考虑外向树怎么做.显然设f[i][j]为i子树中出现权值和为j的合法方案的概率,转移做树形背包即可. 如果树上只有一条反向边,显然可以先不考虑该边计算概率,再减去将整棵树看做外向树的概率.于是考虑容斥,进一步拓展到多条反向边,就是考虑0条反向边的概率-考虑1条反向边的概率+考虑2条反向边的概率……容斥可以在dp中完成,即遇到反向边时分是否考虑它转移,若考虑乘上-1的系数. #include<bits/stdc++.h> using namespace std; #define ll long

专家调查揭密真相手游充值平台充值2.5折真的存在?

近段时间,有不少玩家在搜索手游充值平台2.5折,同时是大量的玩家投诉与举报,不少玩家的帐号密码被盗取.充值的金额不知所踪. 为此小编联系了业内专家,对这一现象进行了分析.得出了如下结论: 2.5折的充值折扣平台是不存在的,就算是游戏研发方都不会有这样的折扣.如果是贪图超乎寻常的折扣,那很有可能就是利益受损. 那是不是就没有折扣了呢,也不是的,手游发展到今天,已经是群雄逐鹿,选择一个靠谱的大平台才是氪金的保障.特别是十年的大平台. 新版的“手游折扣中心”(点击获取)以十年老平台的资历参与游戏对接,

2019地瓜手游折扣平台安全性测试报告

2004年成立的手游大平台之作:地瓜手游折扣,正式发布了,平台端集成了所有市面上的游戏大作,新游首发,游戏攻略,礼包大成. 所有的游戏包集成SDK,游戏方背书,安全可靠 小编作为一个游戏资深玩家,在游戏上充值上可以算得上氪金玩家了.在游戏平台,特别是手机游戏充值折扣平台上,可以说是尝试了市面上基本所有的大平台.用一句话总结就是,坑太多,水太深.曾经有一段时间小编迷恋地寻找所谓的1折平台,2折平台,可是找到的结果,要么是充值后,续充完全没有折扣,要么就是充值后直接不到帐.无论上述哪种情况,都是又花

2019这么多手游折扣平台究竟哪个靠谱,怎么分辨?

今天小编只谈干货,只谈技术,只谈经验! 首先判断一个手游折扣平台是否靠谱,不能看广告,也不能相信游戏中的喊话,也不能在QQ群里顺便下载包. 今天我们要走的是技术流路线. 判断标准: 1.平台的历史.如果是不到一年的新平台直接放弃.不论有多低的折扣,小编有不少朋友就已经着了套路.有的是充值后,不到帐,有的是充值后,被封号.试想这么小的规模,随时都有风险.我们玩游戏,可不是体验,而是真金白银的花钱啊.钱还是小事,对于氪金玩家来说,辛苦培养出来的装备和帐号,被盗了,或被封了,那不是损失太大了.参考意见

新品上线:手游折扣中心官网公布下载地址

2019年新年伊始,手游圈最老的平台,2004年成立的平台,15年的历史平台,超过1亿玩家的平台,正式推出了手游折扣中心. 官网界面如下: 平台特点:>>手游折扣中心官网地址<<<(点击)最大的特点就是安全,第二大特点是力度最大.为什么呢? 汇聚安卓苹果几乎所有的游戏资源,礼包资源,攻略资源.拥有超过1亿的用户基数的玩家论坛.明码实价,明确标明出首充和续充,让人感觉到放心. 平台首创的SDK模式,游戏厂家直接植入SDK充值代码,由游戏方深度接入平台的代码,安全性有保障,不会出

2019排行榜平台分析手游折扣app哪个好

随着智能手机的迅速普及,与3G网络的快速发展,移动互联网的相关业务,已逐渐成为国内各厂商关注的焦点,中国手机游戏市场目前仍然以网游版产品为主.从整体行业来看,中国手机游戏行业处于快速发展期,近两年来,在电信运营商和手机游戏开发商的联合推动下,中国的手机游戏行业,取得了较快的发展. 手游行业发展如此之快,玩家在选择手游平台的时候,往往无法辨别平台的优势和劣势.接下来我们就一一分析一下: 最佳体验奖的手游折扣中心: 平台特点:>>>手游折扣中心官网地址<<<(点击)最大的特

手游折扣端的骗局有哪些,有没有良心平台推荐?

手游折扣端已经推出了很多款,也有很多玩家被一些违规操作的折扣端坑钱,良心提供福利充值的平台比较少,需要从多个方面去甄别,手游圈发展到现在,常见的骗局有: 1.低首充骗局,利用很低的首充折扣吸引玩家,玩家上手后,无法进行续冲,或者无法享受折扣. 2.盗号骗局,一些小公会,利用冲榜等手段,吸引玩家,骗取玩家的信任后,以代充的名义获取玩家的用户名和密码,然后消失 3.续冲涨价骗局,这种比较隐蔽,首充结束后,续冲价格一涨再涨. 4.游戏封号骗局.由于一些公会的唯利是图,导致游戏失去平衡,被游戏方封号.

手游折扣中心与其他手游折扣平台对比评测哪个靠谱

对于一款手游来说,要想做到成功就先要做到三个方面:创意策划.程序开发和美术音效设计.创意策划就需要调研市场,了解玩家们想要的是什么,在此基础上通过创新改革,做出有自己特色的有创新的产品来.程序开发就需要开发出稳定的程序,再进行优化调整,保证玩家们在玩游戏的过程中能获得极致体验,而不会因为程序的问题退游.做到了以上两点,很多游戏厂商就戛然而止,但是虽然看起来是最不重要的一项的美术音效设计,却是影响一款游戏能否成功的关键性因素,现在的玩家在体验过很多款游戏之后,变得越来越挑剔,对于一些细节的品质是极