Skip to main content

All Solution Code of CodeChef May Long Challenge 2021

competitve programming solution here...

solution code of Tree House problem number-6 of may long challenge codechef

 Tree House Problem Solution Code: CodeChef

Solution Code

#pragma GCC optimize("Ofast", "unroll-loops")
#include <bits/stdc++.h>
using namespace std;

#define int long long int
#define double long double
using pii = pair<intint>;
template <typename T>
using Prior = std::priority_queue<Tvector<T>, greater<T>>;

#define X first
#define Y second
#define eb emplace_back
#define ALL(xbegin(x), end(x)
#define RALL(xrbegin(x), rend(x)
#define fastIO() ios_base::sync_with_stdio, cin.tie(0)

mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());

inline int getRand(int Lint R)
{
    if (L > R)
        swap(LR);
    return (int)(rng() % (uint64_t)(R - L + 1+ L);
}
template <typename T1typename T2>
ostream &operator<<(ostream &ospair<T1T2p)
{
    os << "(" << p.first << "," << p.second << ")";
    return os;
}

template <typename T>
ostream &operator<<(ostream &osvector<Tvec)
{
    for (int i = 0; i < vec.size(); ++i)
    {
        if (i)
            os << " ";
    }
    return os;
}

const int maxn = 3E5 + 5;
const int mod = 1E9 + 7;

vector<int> adj[maxn], subval, val;
vector<pii> ch;

void dfs(int nowint lst = -1)
{
    for (auto x : adj[now])
    {
        if (x == lst)
            continue;
        dfs(x, now);
    }
    ch.clear();
    for (auto x : adj[now])
    {
        if (x != lst)
            ch.eb(subval[x], x);
    }
    sort(RALL(ch));

    int tok = 1;
    for (auto [_val, id] : ch)
        val[id] = tok++;
    for (auto x : adj[now])
    {
        if (x != lst)
            subval[now+= val[x] * subval[x];
    }
}

void solve()
{
    int N, X;
    cin >> N >> X;
    subval.assign(N, 1), val.assign(N, 0);
    for (int i = 0; i < N; ++i)
        vector<int>().swap(adj[i]);

    for (int i = 0; i < N - 1++i)
    {
        int u, v;
        cin >> u >> v, --u, --v;
        adj[u].eb(v), adj[v].eb(u);
    }

    dfs(0);

    cout << subval[0% mod * X % mod << endl;
}

int32_t main()
{
    fastIO();

    int t;
    cin >> t;
    for (int _ = 1; _ <= t; ++_)
    {
        solve();
    }
    return 0;
}

Comments

Post a Comment

Popular posts from this blog

solution code of Valid Paths problem number-7 of may long challenge codechef

 Valid Paths Problem Solution Code: CodeChef Solution Code #include <bits/stdc++.h> using   namespace   std ; #define   ll   long   long #define   f ( i ,  a ,  b )  for ( int  i = a; i < b; i ++ ) #define   mod   1000000007 #define   mk   make_pair #define   uniq ( v ) (v). erase ( unique ( all (v)), (v). end ()) #define   ff  first #define   ss  second #define   rf ( i ,  a ,  b )  for ( int  i = a;i >= b;i -- ) #define   sc ( a )  scanf ( " %lld " ,  & a) #define   pf   printf #define   sz ( a ) ( int )(a. size ()) #define   psf  push_front #define   ppf  pop_front #define   ppb  pop_back #define   pb  push_back #define   pq  priority_queue #define   all ( s ) s. begin (),s. end () #define   sp ( a )  setprecision (a)...

solution code of An Interesting Sequence problem number-8 of may long challenge codechef

An Interesting Sequence Problem Solution Code: CodeChef #include   <bits/stdc++.h> using   namespace   std ; #define   endl   " \n " int   main () {     cin. tie ( 0 );      int  N  =   4 e 6   +   5 ;      int  phi[N], ans[N];      for  ( int  i  =   0 ; i  <  N; i ++ )     {         phi[i]  =  i;         ans[i]  =   0 ;     }      for  ( int  p  =   2 ; p  <  N; p ++ )     {          if  (phi[p]  ==  p)         {            ...