#include using namespace std; #include using mint = atcoder::modint998244353; int main(){ int q; cin >> q; while(q--){ int n; cin >> n; vector> G(n); for (int i(1),a,b;i < n;++i){ cin >> a >> b; G[a-1].emplace_back(b-1),G[b-1].emplace_back(a-1); } mint r = 0; auto dfs = [&](auto dfs,int x,int p) -> vector { vector R(4); R[0] = 1; for (int y:G[x]) if (y!=p){ vector T = dfs(dfs,y,x); r += R[2]*T[0]+R[1]*T[1]+T[2]; for (int k(0);k < 3;++k) R[k+1] += T[k]; } return vector(R.begin(),R.end()-1); }; dfs(dfs,0,-1); cout << r.val() << endl; } }