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;

}