কম্পিউটার

একটি গ্রিডে একটি ট্রিপ করার জন্য একটি রোবটের জন্য প্রয়োজনীয় মোট খরচ খুঁজে বের করার জন্য C++ প্রোগ্রাম


ধরুন, আমাদেরকে h x w মাত্রার একটি গ্রিড দেওয়া হয়েছে। গ্রিডের প্রতিটি কক্ষে কিছু ধনাত্মক পূর্ণসংখ্যা থাকে। এখন একটি নির্দিষ্ট কক্ষে (p, q) একটি পাথ-ফাইন্ডিং রোবট স্থাপন করা হয়েছে (যেখানে p হল সারি নম্বর এবং q হল একটি ঘরের কলাম সংখ্যা) এবং এটিকে (i, j) ঘরে সরানো যেতে পারে। একটি মুভ অপারেশনের একটি নির্দিষ্ট খরচ থাকে, যা |p - i| এর সমান + |q - j|। এখন কিউ সংখ্যক ট্রিপ রয়েছে, যার নিম্নলিখিত বৈশিষ্ট্য রয়েছে।

  • প্রতিটি ট্রিপের দুটি মান আছে (x, y) এবং একটি সাধারণ মান d আছে।

  • একটি রোবটকে x মান বিশিষ্ট একটি কক্ষে স্থাপন করা হয়, তারপর x + d মান সহ অন্য একটি ঘরে চলে যায়।

  • তারপর এটি x + d + d মান সহ অন্য ঘরে চলে যায়। এই প্রক্রিয়াটি চলতে থাকবে যতক্ষণ না রোবট এমন একটি কক্ষে পৌঁছায় যার মান y এর চেয়ে বেশি বা সমান।

  • y - x হল d এর গুণিতক।

ভ্রমণের পরিপ্রেক্ষিতে, আমাদের প্রতিটি ভ্রমণের মোট খরচ খুঁজে বের করতে হবে। রোবট নড়াচড়া করতে না পারলে, ট্রিপ খরচ 0।

সুতরাং, যদি ইনপুট হয় h =3, w =3, d =3, q ​​=1, গ্রিড ={{2, 6, 8}, {7, 3, 4}, {5, 1, 9}} , trips ={{3, 9}}, তাহলে আউটপুট হবে 4.

3 কক্ষে (2, 2)

6 কক্ষে রয়েছে (1, 2)

9 কক্ষে রয়েছে (3, 3)

মোট খরচ =|(1 - 2) + (2 - 2) | + |(3 - 1) + (3 - 2)| =4.

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

শুরু করার জন্য একটি মানচিত্রের লোককে সংজ্ঞায়িত করুন i :=0, যখন i w * h, তাহলে:লুপ থেকে বেরিয়ে আসুন dx :=|loc[n] এর প্রথম মান - এর প্রথম মান loc[j]| dy :=|loc[n]-এর দ্বিতীয় মান - loc[j]|এর দ্বিতীয় মান j :=j + d dp[i] এর শেষে dx + dy সন্নিবেশ করান j :=1, যখন j

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ

#include নেমস্পেস ব্যবহার করে std;const int INF =1e9;void solve(int h, int w, int d, int q, vector> grid,vector> ট্রিপ) { মানচিত্র> loc; জন্য (int i =0; i  dp[d + 1]; জন্য (int i =1; i <=d; i++) { int j =i; যখন (j  w * h) বিরতি; int dx =abs(loc[n].first - loc[j].first); int dy =abs(loc[n].second - loc[j].second); j +=d; dp[i].push_back(dx + dy); } এর জন্য (j =1; j > গ্রিড ={{2, 6, 8}, {7, 3, 4}, {5, 1, 9}}; ভেক্টর> trips ={{3, 9}}; সমাধান (h, w, d, q, grid, trips); রিটার্ন 0;

ইনপুট

3, 3, 3, 1, {{2, 6, 8}, {7, 3, 4}, {5, 1, 9}}, {{3, 9}}

আউটপুট

4

  1. একটি গ্রাফে সুপার শীর্ষবিন্দুগুলি খুঁজে বের করার জন্য C++ প্রোগ্রাম

  2. একটি গ্রিডে আলোকিত কোষের সংখ্যা খুঁজে বের করার জন্য C++ প্রোগ্রাম

  3. একটি গ্রিডের ভিতরে একটি বহুভুজ রয়েছে এমন বাহুর সংখ্যা খুঁজে বের করার জন্য C++ প্রোগ্রাম

  4. একটি পাথ তৈরি করতে একটি গ্রিডে ব্লক করার জন্য সেলের সংখ্যা খুঁজে বের করার জন্য C++ প্রোগ্রাম