কম্পিউটার

পাইথনে শর্টকাটে দুটি শহরের মধ্যে দৈর্ঘ্য খুঁজে বের করার প্রোগ্রাম


ধরুন n সংখ্যক শহর রয়েছে এবং শহরগুলি দুটি ধরণের রাস্তার সাথে সংযুক্ত রয়েছে; হাইওয়ে এবং শর্টকাট। এখন, একটি মানচিত্র রয়েছে এবং মানচিত্রে শুধুমাত্র মহাসড়কগুলি উপস্থিত রয়েছে এবং সমস্ত শর্টকাট অনুপস্থিত। শহরগুলির পরিবহন বিভাগ একটি পরিবহন চালু করতে চায় যা মহাসড়ক এবং শর্টকাটগুলি ব্যবহার করে শহরগুলিকে সংযুক্ত করে। আমরা জানি দুটি শহরের মধ্যে একটি শর্টকাট আছে যখন তাদের মধ্যে কোনো হাইওয়ে নেই। এখানে আমাদের কাজ হল একটি প্রারম্ভিক শহর থেকে অন্য সমস্ত শহরে শর্টকাটগুলির ক্ষেত্রে সর্বনিম্ন দূরত্ব খুঁজে বের করা৷

সুতরাং, যদি ইনপুট মত হয়

পাইথনে শর্টকাটে দুটি শহরের মধ্যে দৈর্ঘ্য খুঁজে বের করার প্রোগ্রাম

এবং স্টার্ট ভার্টেক্স (গুলি) হল 1, তাহলে আউটপুট হবে 3 1 2৷

আমরা যদি শুধুমাত্র শর্টকাট নিই, তাহলে শহর 1 এবং 2 এর মধ্যে পথ হবে 1->3->4->2, এবং খরচ হবে 3।

একইভাবে,

1 এবং 3:1->3, খরচ 1.

1 এবং 4:1->3->4, খরচ 2।

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

  • গ্রাফ :=n সেট সম্বলিত একটি নতুন তালিকা
  • প্রান্তে প্রতিটি জোড়ার জন্য (x, y), করুন
    • x :=x - 1
    • y :=y - 1
    • গ্রাফে y ঢোকান[x]
    • গ্রাফে x ঢোকান[y]
  • temp_arr :=n আকারের একটি নতুন অ্যারে যার মান -1 রয়েছে
  • b_set :=কী s - 1 সম্বলিত একটি নতুন মানচিত্র
  • f :=0 থেকে n এবং b_set সংখ্যার মধ্যে সেট পার্থক্য ধারণকারী একটি নতুন সেট
  • সূচক :=0
  • যখন b_set> 0 এর সাইজ, do
    • b_set এ প্রতিটি উপাদান a এর জন্য, করুন
      • temp_arr[a] :=সূচক
    • nxt :=একটি নতুন মানচিত্র যেখানে গ্রাফের মান রয়েছে যা b_set এর উপসেট নয়
    • f :=f এবং nxt এর পার্থক্য সেট করুন
    • b_set :=nxt
    • সূচী :=সূচক + 1
  • temp_arr-এর অ-শূন্য মান ফেরত দিন

উদাহরণ

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

def সমাধান(n, edges, s):graph =[set() for i in range(n)] প্রান্তে (x, y) এর জন্য:x -=1 y -=1 গ্রাফ[x].add গ্রাফ 0:a in b_set:temp_arr[a] =index nxt ={f এর জন্য f in f না থাকলে b_set.issubset(graph[f])} f =f.difference(nxt) b_set =nxt সূচক +=1 রিটার্ন ( ' '. temp_arr এ t এর জন্য জয়েন(str(t) যদি t> 0)) প্রিন্ট(সল্ভ(4, [(1, 2), (2, 3), (1, 4)], 1)) 

ইনপুট

4, [(1, 2), (2, 3), (1, 4)], 1

আউটপুট

3 1 2

  1. ন্যূনতম খরচ খুঁজে বের করার প্রোগ্রাম যাতে নাগরিকদের পাইথনের একটি বাজারে অ্যাক্সেস থাকে

  2. পাইথনে একটি বাইনারি গাছে দুটি নোডের মধ্যে দূরত্ব খুঁজে বের করার জন্য প্রোগ্রাম

  3. পাইথনের প্রত্যেকের দ্বারা গ্রাফটি অতিক্রম করা যায় কিনা তা খুঁজে বের করার প্রোগ্রাম

  4. পাইথন প্রোগ্রাম a no দুইটির শক্তি কিনা তা খুঁজে বের করতে