मान लीजिए हमारे पास एक सूची A है। हमने A के सभी गैर-खाली सबलिस्ट लिए हैं जैसा कि हम जानते हैं n एलिमेंट्स वाली सूची l में (2n - 1) गैर-खाली सबलिस्ट होते हैं। अब प्रत्येक सबलिस्ट के लिए, वह सबलिस्ट_सम (एलिमेंट्स का योग) की गणना करता है और उन्हें S1, S2, S3, ... , S(2N-1) द्वारा दर्शाता है। एक विशेष योग P है जैसे कि P = 2S1 + 2S2 +2S3 .... + 2S(2N-1)। हमें P ढूंढना है। यदि P बहुत बड़ा है तो P mod (10^9 + 7) वापस करें।
तो, यदि इनपुट A = [2,2,3] है, तो आउटपुट होगा: सबसेट हैं
- {2} तो 2^2 = 4
- {2} तो 2^2 = 4
- {3} तो 2^3 = 8
- {2,2} तो 2^4 = 16
- {2,3} तो 2^5 = 32
- {2,3} तो 2^5 = 32
- {2,2,3} तो 2^7 = 128
योग 4 + 4 + 8 + 16 + 32 + 32 + 128 = 224 है
इसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे:
- ans:= 1
- m:= 10^9+7
- A में प्रत्येक el के लिए, करें
- ans := ans *(1 + (2^el mod m))
- ans := ans mod m
- (m + ans-1) mod m वापस करें
उदाहरण
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
def solve(A): ans=1 m=10**9+7 for el in A: ans *= (1+pow(2,el,m)) ans %= m return (m+ans-1) % m A = [2,2,3] print(solve(A))
इनपुट
[2,2,3]
आउटपुट
224