समस्या:
हमने आकार N
आकार A[]
दिया है। अब हम Q
प्रश्न दिए जाते हैं, तो हर प्रश्नों तीन पूर्णांक l,r,k
से मिलकर बनता है जहां:क्रमबद्ध उप-सरणी के kth तत्व को एल से आर तक कैसे जोड़ना है?
1<=l<=r<=N
1<=k<=(r-l+1)
1<=N,Q<=10^5
अब, हम l
से r
के अनुसार क्रमबद्ध उप सरणी के k
तत्व तक योग पता लगाना चाहते हैं।
उदाहरण के लिए:
N=6
और सरणी तत्व हो 5,1,7,4,6,3
और Q=1
जहां l,r,k
2,5,3
के रूप में हो।
तो index 2 to index 5
से उप सरणी {1,7,4,6}
छँटाई यह हो जाता है के रूप में {1,4,6,7}
तो योग तक k=3
अवधि के लिए (1+4+6)=11
तो जवाब 11
है बराबर है के बाद हो सकता है।
मैंने प्रत्येक उप-सरणी के सॉर्टिंग का उपयोग करने का प्रयास किया है और फिर योग, Q*N*log(N)
सबसे खराब मामले में समय जटिलता लेता है।
कृपया सबसे खराब मामले में Q*N
से कम समय जटिलता के भीतर कोई बेहतर समाधान खोजने में मदद करें।
समय कुशल समाधान के लिए, गतिशील प्रोग्रामिंग –
@ सौरवसूहू का उपयोग करके इसे करने का प्रयास करें गतिशील प्रोग्रामिंग का उपयोग करके इसे कैसे कार्यान्वित करें? – user7534168
संबंधित: https://stackoverflow.com/questions/44396308/subarray-queries –