Đếm chiều dài chẵn

Jan 01 2023
Vấn đề trong ngày của GFG [ 01 Jan 2023 ]
Cho một số n, hãy tìm số lượng của tất cả các chuỗi nhị phân có độ dài 2n sao cho tổng n bit đầu tiên bằng tổng n bit cuối cùng. Câu trả lời có thể rất lớn.
Ảnh của Công ty luật chấn thương Tingey trên Bapt

Cho một số n, tìm số lượng của tất cả các chuỗi nhị phân có độ dài 2n sao cho tổng n bit đầu tiên bằng tổng n bit cuối cùng.
Anwer có thể rất lớn. Vì vậy, bạn phải trả lại câu trả lời theo modulo 10^9+7.

Ví dụ:

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.

Độ phức tạp thời gian dự kiến: O(n * log(n))
Độ phức tạp không gian dự kiến: O(1)

Dung dịch

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);
    }
}

Độ phức tạp không gian: O(1)

Tham gia Kênh Telegram của tôi để nhận tất cả các giải pháp GFG POD.

https://t.me/sole_master_coding

Cảm ơn tất cả !!!

Chúc mừng năm mới !!!