Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में 2N संख्याओं का एक क्रमचय ढूंढें जिससे दिया गया व्यंजक ठीक 2K हो


मान लीजिए हमारे पास दो पूर्णांक N और K हैं। हमें 2N प्राकृतिक संख्याओं का पहला क्रमचय ढूंढना है, जैसे कि निम्नलिखित समीकरण संतुष्ट हो।

$$\displaystyle\sum\limits_{i=1}^N\lvert A_{2i-1}-A_{2i}\rvert+\lvert \displaystyle\sum\limits_{i=1}^N A_{2i-1}-A_{2i} \rvert=2K$$

K का मान N से कम या बराबर होना चाहिए। उदाहरण के लिए, यदि N = 4 और K = 1, तो आउटपुट 2 1 3 4 होगा। दिए गए व्यंजक का परिणाम (|2 – 1| + |3 – 4|) – (|2 – 1 + 3 – 4|) = 2 होगा।

विचार सरल है, मान लीजिए हमारे पास 1, 2, 3, 4, 5, 6, ... जैसा एक सॉर्टेड अनुक्रम है। यदि हम किन्हीं दो सूचकांकों 2i - 1 और 2i को स्वैप करते हैं, तो परिणाम ठीक 2 से बढ़ जाएगा। हमें K ऐसे स्वैप करने होंगे।

उदाहरण

#include<iostream> using namespace std; void showPermutations(int n, int k) { for (int i = 1; i <= n; i++) { int a = 2 * i - 1; int b = 2 * i; if (i <= k) cout << b << " " << a << " "; else cout << a << " " << b << " "; } } int main() { int n = 4, k = 2; showPermutations(n, k); }

आउटपुट

2 1 4 3 5 6 7 8

  1. - C++ में वह बिंदु खोजें जहां मैनहट्टन दूरियों का योग न्यूनतम हो

    मान लीजिए हमारे पास K आयाम स्थान में n अलग-अलग बिंदु हैं, n का मान (2, 105) रेंज में है, और k का मान (1 से 5) रेंज में है। हमें वह बिंदु निर्धारित करना है जिससे n बिंदुओं तक मैनहट्टन दूरी का योग न्यूनतम हो। दो बिंदुओं P1(x1, y1) और P2(x2, y2) के बीच मैनहट्टन दूरी है |x1 – x2| + |y1 – y2|। मान लीजिए

  1. - C++ में दी गई रेंज में विशिष्ट जोड़ी (x, y) ढूंढें जहां x, y को विभाजित करता है

    समस्या विवरण एक रेंज [l, r] दी गई है, हमें एक जोड़ी (x, y) ढूंढनी है जहां l ≤ x, y ≤ r और x, y को विभाजित करता है। यदि कई जोड़ियां हैं तो कोई भी एक वापस करें। हल दृष्टिकोण यह समस्या O(1) समय में हल हो सकती है। सबसे छोटा अनुपात y/x = 2 होता है। इसलिए x = l और y = 2l लेने से हमेशा एक वैध जोड़ी मिलती

  1. - C++ में दिए गए सूचकांकों के साथ N फाइबोनैचि संख्याओं का GCD ढूंढना

    यहां हमें दिए गए सूचकांकों के साथ n फाइबोनैचि पदों का GCD ढूंढना है। तो सबसे पहले हमें अधिकतम सूचकांक प्राप्त करना होगा, और फाइबोनैचि पद उत्पन्न करने होंगे। कुछ फाइबोनैचि पद ऐसे हैं: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ... सूचकांक 0 से शुरू होता है। तो 0वें सूचकांक पर तत्व 0 है। यदि हमें सूचकांकों {2,