Conta anche la lunghezza

Jan 01 2023
Problema del giorno GFG [01 gennaio 2023]
Dato un numero n, trova il conteggio di tutte le sequenze binarie di lunghezza 2n tale che la somma dei primi n bit sia uguale alla somma degli ultimi n bit. La risposta può essere molto grande.
Foto di Tingey Injury Law Firm su Unsplash

Dato un numero n, trova il conteggio di tutte le sequenze binarie di lunghezza 2n tale che la somma dei primi n bit sia uguale alla somma degli ultimi n bit.
La risposta può essere molto grande. Quindi, devi restituire la risposta modulo 10^9+7.

Esempio:

Input: n = 2
Output: 6
Explanation: There are 6 sequences of length 
2*n, the sequences are 0101, 0110, 1010, 1001, 
0000 and 1111.

Input: n = 1
Output: 2
Explanation: There are 2 sequence of length 
2*n, the sequence are 00 and 11.

Complessità temporale attesa: O(n * log(n))
Complessità spaziale attesa: O(1)

Soluzione

class Solution {
    public long power(long x, long y, long p) {
        long res = 1l;
        x = x % p;
        while (y > 0) {
            if (y % 2 == 1)
                res = (res * x) % p;
            y = y >> 1;
            x = (x * x) % p;
        }
        return res;
    }

    public long modInverse(long n, long p) {
        return power(n, p - 2, p);
    }
    
    public int compute_value(int n) {
        // code here
        long ans = 1l;
        long mod = (long)(Math.pow(10, 9) + 7l);
        long compute = 1l;
        for(int i=0;i<n;i++) {
            compute = (compute%mod * (long)(n-i)%mod) % mod;
            compute = (compute%mod * modInverse(i+1, mod)%mod) % mod;
            ans = (ans%mod + (compute%mod*compute%mod)%mod) % mod;
        }
        return (int)(ans%mod);
    }
}

Complessità spaziale: O(1)

Unisciti al mio canale Telegram per ottenere tutte le soluzioni GFG POD.

https://t.me/sole_master_coding

Ringrazia tutti !!!

Buon Anno !!!