কম্পিউটার

এমন একটি বিন্দু খুঁজুন যাতে ম্যানহাটনের দূরত্বের যোগফল 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) //sort in all k dimension
      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. x এর সর্বোচ্চ মান বের করুন যেমন n! C++ এ % (k^x) =0

  2. 2N সংখ্যার একটি পারমুটেশন খুঁজুন যাতে প্রদত্ত রাশির ফলাফল C++ এ ঠিক 2K হয়

  3. ক্ষুদ্রতম সংখ্যাটি নির্ণয় করুন যেমন X! C++-এ কমপক্ষে Y অনুগামী শূন্য রয়েছে

  4. একটি অ্যারেতে সমস্ত জোড়া (a, b) খুঁজুন যেমন একটি % b =k C++ এ