playground updated

This commit is contained in:
Hizenberg469
2024-11-30 23:25:28 +05:30
parent 9415c7f0c7
commit b46c486580
20 changed files with 837 additions and 566 deletions

View File

@@ -1,32 +1,32 @@
#include <bits/stdc++.h>
using namespace std;
/* cantalan Number using Iterative dp */
int catalanNumber( int n ){
vector<int> dp(n+1);
dp[0] = dp[1] = 1;
for(int i = 2 ; i <= n ; i++ ){
for(int j = 0 ; j <= i ; j++ ){
dp[i] += dp[j-1]*dp[i-j];
}
}
return dp[n];
}
/*
Formula for Catalan Number
(2n-C-n)/(n+1)
*/
int main(int argc, char* argv[] ){
cout << catalanNumber(2) << '\n';
return 0;
#include <bits/stdc++.h>
using namespace std;
/* cantalan Number using Iterative dp */
int catalanNumber( int n ){
vector<int> dp(n+1);
dp[0] = dp[1] = 1;
for(int i = 2 ; i <= n ; i++ ){
for(int j = 0 ; j <= i ; j++ ){
dp[i] += dp[j-1]*dp[i-j];
}
}
return dp[n];
}
/*
Formula for Catalan Number
(2n-C-n)/(n+1)
*/
int main(int argc, char* argv[] ){
cout << catalanNumber(2) << '\n';
return 0;
}

View File

@@ -1,69 +1,69 @@
typedef long long int ll;
ll mod = 998244353;
vector<ll> factorial;
void calculateFactorial(ll n){
factorial.resize(n+1);
factorial[0] = factorial[1] = 1;
for( ll i = 2 ; i <= n ; i++ ){
factorial[i] = ( factorial[i-1] * i ) % mod;
}
}
template<typename T>
T modMul(T a,T b,T M=(ll)1e9+7){
return ((a%M)*(b%M))%M;
}
template<typename T>
inline T power(T a, T b, T M)
{
T x = 1;
while (b)
{
if (b & 1) x = modMul(x,a,M);
a = modMul(a,a,M);
b >>= 1;
}
return x;
}
/* Using Fermat little Theorem */
ll inverse(ll n ){
return power( n , mod - 2 , mod );
}
vector<ll> inverse_factorial;
void calculateInverseFactorial(ll n){
inverse_factorial.resize(n+1);
inverse_factorial[0] = inverse_factorial[1] = 1;
for( ll i = 2 ; i <= n ; i++ ){
inverse_factorial[i] = (inverse(i)*inverse_factorial[i-1])%mod;
}
}
ll nCr( ll n , ll r ){
// -- n! --
// | ------------- | % mod
// -- n! * (n - r)! --
return ( ( ( factorial[n] * inverse_factorial[r] ) % mod
) * inverse_factorial[n-r] ) % mod;
}
/* Catalan Number */
ll Cn( ll n ){
// -- 2n! --
// | --------------- | % mod
// -- n! * n! * (n+1) --
return ( ( ( ( ( factorial[2*n] * inverse_factorial[n] ) % mod )
* inverse_factorial[n] ) % mod ) * inverse( n + 1 ) ) % mod;
typedef long long int ll;
ll mod = 998244353;
vector<ll> factorial;
void calculateFactorial(ll n){
factorial.resize(n+1);
factorial[0] = factorial[1] = 1;
for( ll i = 2 ; i <= n ; i++ ){
factorial[i] = ( factorial[i-1] * i ) % mod;
}
}
template<typename T>
T modMul(T a,T b,T M=(ll)1e9+7){
return ((a%M)*(b%M))%M;
}
template<typename T>
inline T power(T a, T b, T M)
{
T x = 1;
while (b)
{
if (b & 1) x = modMul(x,a,M);
a = modMul(a,a,M);
b >>= 1;
}
return x;
}
/* Using Fermat little Theorem */
ll inverse(ll n ){
return power( n , mod - 2 , mod );
}
vector<ll> inverse_factorial;
void calculateInverseFactorial(ll n){
inverse_factorial.resize(n+1);
inverse_factorial[0] = inverse_factorial[1] = 1;
for( ll i = 2 ; i <= n ; i++ ){
inverse_factorial[i] = (inverse(i)*inverse_factorial[i-1])%mod;
}
}
ll nCr( ll n , ll r ){
// -- n! --
// | ------------- | % mod
// -- n! * (n - r)! --
return ( ( ( factorial[n] * inverse_factorial[r] ) % mod
) * inverse_factorial[n-r] ) % mod;
}
/* Catalan Number */
ll Cn( ll n ){
// -- 2n! --
// | --------------- | % mod
// -- n! * n! * (n+1) --
return ( ( ( ( ( factorial[2*n] * inverse_factorial[n] ) % mod )
* inverse_factorial[n] ) % mod ) * inverse( n + 1 ) ) % mod;
}

View File

@@ -1,56 +1,56 @@
ll mod = 998244353;
vector<ll> factorial;
void calculateFactorial(ll n){
factorial.resize(n+1);
factorial[0] = factorial[1] = 1;
for( ll i = 2 ; i <= n ; i++ ){
factorial[i] = ( factorial[i-1] * i ) % mod;
}
}
template<typename T>
T modMul(T a,T b,T M=(ll)1e9+7){
return ((a%M)*(b%M))%M;
}
template<typename T>
inline T power(T a, T b, T M)
{
T x = 1;
while (b)
{
if (b & 1) x = modMul(x,a,M);
a = modMul(a,a,M);
b >>= 1;
}
return x;
}
/* Using Fermat little Theorem */
ll inverse(ll n ){
return power( n , mod - 2 , mod );
}
vector<ll> inverse_factorial;
void calculateInverseFactorial(ll n){
inverse_factorial.resize(n+1);
inverse_factorial[0] = inverse_factorial[1] = 1;
for( ll i = 2 ; i <= n ; i++ ){
inverse_factorial[i] = (inverse(i)*inverse_factorial[i-1])%mod;
}
}
ll nCr( ll n , ll r ){
// -- n! --
// | ------------- | % mod
// -- n! * (n - r)! --
return ( ( ( factorial[n] * inverse_factorial[r] ) % mod
) * inverse_factorial[n-r] ) % mod;
ll mod = 998244353;
vector<ll> factorial;
void calculateFactorial(ll n){
factorial.resize(n+1);
factorial[0] = factorial[1] = 1;
for( ll i = 2 ; i <= n ; i++ ){
factorial[i] = ( factorial[i-1] * i ) % mod;
}
}
template<typename T>
T modMul(T a,T b,T M=(ll)1e9+7){
return ((a%M)*(b%M))%M;
}
template<typename T>
inline T power(T a, T b, T M)
{
T x = 1;
while (b)
{
if (b & 1) x = modMul(x,a,M);
a = modMul(a,a,M);
b >>= 1;
}
return x;
}
/* Using Fermat little Theorem */
ll inverse(ll n ){
return power( n , mod - 2 , mod );
}
vector<ll> inverse_factorial;
void calculateInverseFactorial(ll n){
inverse_factorial.resize(n+1);
inverse_factorial[0] = inverse_factorial[1] = 1;
for( ll i = 2 ; i <= n ; i++ ){
inverse_factorial[i] = (inverse(i)*inverse_factorial[i-1])%mod;
}
}
ll nCr( ll n , ll r ){
// -- n! --
// | ------------- | % mod
// -- n! * (n - r)! --
return ( ( ( factorial[n] * inverse_factorial[r] ) % mod
) * inverse_factorial[n-r] ) % mod;
}