Skip to main content

All Solution Code of CodeChef May Long Challenge 2021

competitve programming solution here...

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(iabfor(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(iabfor(int i=a;i>=b;i--)
#define sc(ascanf("%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(asetprecision(a)
#define rz resize
#define ld long double
#define inf (ll)1e18
#define ub upper_bound
#define lb lower_bound
#define bs binary_search
#define eb emplace_back
const double pi = acos(-1);

ll binpow(ll all bll md){ll res = 1;while(b!=0){if(b&1)res*=a,res%=md;a*=a,a%=md;b>>=1;}return res%md;}

ll ans;
vector<vector<int>> v;
vector<ll> dp, tot;
void dfs(int curint par)
{
    dp[cur]=1, tot[cur]=1;
    ll sum = 0, cnt = 0;
    f(i, 0sz(v[cur]))
    {
        ll node = v[cur][i];
        if(node != par)
        {
            dfs(node, cur);
            dp[cur]+=((2*dp[node])%mod), dp[cur]%=mod, cnt++, tot[cur]+=tot[node], tot[cur]%=mod, tot[cur]+=dp[node], tot[cur]%=mod;
            sum += dp[node];
        }
    }
    f(i, 0sz(v[cur]))
    {
        int node = v[cur][i];
        if(node != par)
        {
            tot[cur] += (dp[node]*((sum-dp[node]+mod)%mod))%mod;
            tot[cur] %= mod;
        }
    }
}

int main()
{
    ios_base::sync_with_stdio(false), cin.tie(NULL);
    int z = 1;
    cin>>z;
    f(i, 1, z+1)
    {
        ans = 0;
        int n;cin>>n;
        v.rz(n+1), dp.rz(n+1), tot.rz(n+1);
        f(i, 0, n-1)
        {
            int l, r;
            cin>>l>>r;
            v[l].pb(r), v[r].pb(l);
        }
        dfs(11);
        ll ans = tot[1]%mod;
        cout<<ans<<endl;
        dp.clear(), v.clear(), tot.clear();
    }
}


Comments

Post a Comment

Popular posts from this blog

solution code of Modular Equation problem number-5 of may long challenge codechef

 Modular Equation Problem Code: CodeChef Solution Code #include <bits/stdc++.h> using   namespace   std ; #define   int   long   long   int #define   endl   " \n " int32_t   main () {      ios_base :: sync_with_stdio ( false );     cin. tie ( 0 );      int  t;cin >> t;      while (t -- )     {          int  n, m;cin >> n >> m;          int  count_of_pair  =   0 ;          vector < int >  modular_equation(n + 1 ,  1 );          for ( int  a  =   2 ;a <= n;a ++ )         {              int  x  =  m % a;             count_of_pair  +=  modular_equation [ x ] ;              for ( int  b  =  x;b <= n;b += a)             {                 modular_equation [ b ] ++ ;             }         }         cout << count_of_pair << endl ;     }      return   0 ; }

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 < int ,  int >; template  < typename   T > using   Prior   =   std :: priority_queue < T ,  vector < T >,  greater < T >>; #define   X  first #define   Y  second #define   eb  emplace_back #define   ALL ( x )  begin (x),  end (x) #define   RALL ( x )  rbegin (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   L ,  int   R ) {      if  ( L   >   R )          swap ( L ,  R );      return  ( int )(rng()  %  ( uint64_t )( R   -   L   +   1 )  +   L ); } template  < typename   T1 ,  typename   T2 > ostream   &operator <<( ostre

solution code of Tic Tac Toe problem number-4 of may long challenge codechef

 Tic Tac Toe Problem Solution Code:  CodeChef Solution Code #include <bits/stdc++.h> using   namespace   std ; #define   ll   long   long   int int   main () {      ll  t;     cin >> t;      while (t -- )     {          ll  cx  =   0 , co  = 0 , c_ =   0 ;          char  a[ 3 ][ 3 ];          for ( ll  i = 0 ;i < 3 ;i ++ )         {              for ( ll  j = 0 ;j < 3 ;j ++ )             {                 cin >> a[i][j];                  if (a[i][j] == 'X' )cx ++ ;                  if (a[i][j] == 'O' )co ++ ;                  if (a[i][j] == '_' )c_ ++ ;             }         }          ll  wx  =   0 , wo  =   0 ;          if (a[ 0 ][ 0 ]  ==   'X'   &&  a[ 1 ][ 0 ]  ==   'X'   &&  a[ 2 ][ 0 ]  ==   'X' )wx = 1 ;          if (a[ 0 ][ 1 ]  ==   'X'   &&  a[ 1 ][ 1 ]  ==   'X'   &&  a[ 2 ][ 1 ]  ==   'X' )wx = 1 ;          if (a[ 0 ][ 2 ]  ==   'X'   &