আমি কোডের মাধ্যমে যা করতে চাই তার এটি একটি উদাহরণ। আমি জানি যে আপনি সহজেই কোনও সমস্যা ছাড়াই সবুজ নোড থেকে লাল নোডে পেতে জম্প পয়েন্ট অনুসন্ধান ব্যবহার করতে পারেন, বা এ *ও। তবে আপনি কীভাবে ওয়ার্পস দিয়ে এটি গণনা করবেন।
চিত্রটিতে, আপনি দেখতে পাচ্ছেন যে নীল পথটি নেওয়ার সময় সবুজ নোড থেকে লাল নোডে যেতে কেবল 8 টি পদক্ষেপ নেয়। নীল পথটি তাত্ক্ষণিকভাবে আপনার অবস্থানটিকে এক বেগুনি নোড থেকে অন্যটিতে নিয়ে যায়। মাঝখানে যে স্থানটির জন্য 2 টি মুভ ব্যয় হয় সেগুলি দুটি ওয়ার্প জোনগুলির মধ্যে একটি পয়েন্ট যা আপনাকে অবশ্যই যেতে হবে।
নীল পথটি গ্রহণ করা স্পষ্টতই দ্রুততর, যেহেতু আপনাকে কেবল হলুদ পথ পর্যন্ত কেবল অর্ধেক (মোটামুটি) সরানো দরকার, তবে আমি কীভাবে এটি অগ্রগতিতে করব?
এই সমস্যাটি সমাধানের উদ্দেশ্যে, ধরে নেওয়া যাক আপনি যে গ্রাফটি ব্যবহার করতে সক্ষম হচ্ছেন তার চারপাশে একাধিক বেগুনি "ওয়ার্পস" রয়েছে এবং আমরা জানি যে প্রতিটি বেগুনি বিন্দু কোথায় ছড়িয়ে যাবে এবং তারা গ্রাফটিতে কোথায় রয়েছে।
কিছু বেগুনি স্ট্র্যাপ দ্বি-দিকনির্দেশক এবং কিছু না, অর্থাত্ কখনও কখনও আপনি কেবল একপাশ থেকে একটি বার্প প্রবেশ করতে পারেন, তবে ওয়ার্পিং পরে ফিরে যেতে পারবেন না।
আমি সমাধানটি নিয়ে চিন্তা করেছি এবং কেবল এই সিদ্ধান্তে পৌঁছেছি যে আমি প্রতিটি ওয়ার্প পয়েন্টের দূরত্ব (মাইনাস দ্য ইউনি-দিকনির্দেশক পয়েন্ট) এবং এই পয়েন্টগুলির মধ্যে পার্থক্য এবং তার কাছের পয়েন্টগুলি পরীক্ষা করে সমস্যার গণনা করতে সক্ষম হব ।
প্রোগ্রামটি কোনওভাবে নির্ধারণ করতে হবে যে প্রথম লাফ থেকে হাঁটার পরিবর্তে দ্বিতীয় বার্পটি নেওয়া আরও বেশি উপকারী। সুতরাং, 6 টি দাগ সরানোর পরিবর্তে, ওয়ারপিংয়ের পরে বাকী 8 টি ধাপ পায়ে হেঁটে (যা ওয়ারপগুলি ব্যবহার না করার চেয়ে দ্রুতও হয়), 6 টি পদক্ষেপ নিতে হবে, তারপরে দুটি পদক্ষেপ দ্বিতীয় বার্পে চলে যাবে।
সম্পাদনা: আমি বুঝতে পেরেছি যে নীল পথটি আসলে 8 এর পরিবর্তে 12 টি পদক্ষেপ নেবে, তবে প্রশ্নটি একই রয়েছে।