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

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


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

दो बिंदुओं P1(x1, y1) और P2(x2, y2) के बीच मैनहट्टन दूरी है |x1 – x2| + |y1 – y2|। मान लीजिए आयाम 3 है, और तीन बिंदु हैं (1, 1, 1), (2, 2, 2), (3, 3, 3), तो आउटपुट (2, 2, 2) होगा।

इस समस्या को हल करने के लिए, हमें सभी K आयामों में बिंदुओं को सॉर्ट करना होगा और प्रत्येक k आयाम के मध्य तत्वों से आउटपुट प्राप्त करना होगा।

उदाहरण

#include<iostream> 
#include<vector> 
#include<cmath> 
#include<algorithm> 
using namespace std; 

void minimizeHanhattan(int n, int k, vector<vector<int> >& pointList) { 
    for (int i = 0; i < k; ++i) //सभी k आयाम में सॉर्ट करें
        sort(pointList[i].begin(), pointList[i].end()); 
    for (int i = 0; i < k; ++i) 
        cout << pointList[i][(ceil((double)n / 2) - 1)] << " "; 
} 

int main() { 
    int n = 4, k = 4; 
    vector<vector<int> > point = { { 1, 5, 2, 4 }, 
        { 6, 2, 0, 6 }, 
        { 9, 5, 1, 3 }, 
        { 6, 7, 5, 9 } }; 
    minimizeHanhattan(n, k, point); 
}

आउटपुट

2 2 3 6

  1. - 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 से कम या बराबर होना चाह

  1. - C++ प्रोग्राम: सबसे छोटी संख्या X ज्ञात करना जिससे X! में कम से कम Y अनुगामी शून्य हों

    हमें एक संख्या Y लेनी है, हम सबसे छोटी संख्या X ज्ञात करेंगे, जैसे कि X! में कम से कम Y अनुगामी शून्य हों। उदाहरण के लिए, यदि Y = 2, तो X का मान = 10 होगा। क्योंकि X! = 3228800। इसमें Y संख्या में शून्य हैं। हम इसे बाइनरी सर्च का उपयोग करके हल कर सकते हैं। N! में अनुगामी शून्यों की संख्या N! में 5

  1. - C++ में सरणी में उन सभी जोड़े (a, b) को खोजें जैसे कि a % b = k

    मान लीजिए हमारे पास एक सरणी A है, उस सरणी से हमें सभी जोड़े (a, b) प्राप्त करने हैं जैसे कि a%b = k। मान लीजिए सरणी A = [2, 3, 4, 5, 7], और k = 3, तो जोड़े हैं (7, 4), (3, 4), (3, 5), (3, 7)। इसे हल करने के लिए, हम सूची को पार करेंगे और जांचेंगे कि दी गई शर्त पूरी हो रही है या नहीं। उदाहरण #include