D题dfs即可
#define ll long long
#define mod 998244353
#define int ll
using namespace std;
bool st[1000010];
vector<int >q[1000010];
int n,x,y;
int d[1000010][2];
int dfs(int k,int h) //0 wu 1teshu
{
if(d[k][h]) return d[k][h];
st[k]=1;
int ans=0;
int f=0;
int num1=1,num2=1;
for(int i:q[k])
{
if(!st[i])
{
f=1;
num1*=dfs(i,0);
num1%=mod;
num2*=dfs(i,1);
num2%=mod;
}
}
num2*=(y-h);
num1*=x;
num2%=mod;
num1%=mod;
st[k]=0;
if(f==0)
ans=x+y-h;
else ans=(num1+num2)%mod;
d[k][h]=ans;
return ans%mod;
}
signed main()
{
cin>>n>>x>>y;
for(int i=1; i<n; i++)
{
int a,b;
cin>>a>>b;
q[a].push_back(b);
q[b].push_back(a);
}
cout<<dfs(1,0)%mod<<endl;
}