আসুন কল্পনা করুন আমাদের বিটসের একটি ম্যাট্রিক্স রয়েছে (এতে কমপক্ষে একটি রয়েছে 1
):
0 1 0 1 1 0 1 0 0 1 0
0 1 0 1 0 0 1 0 1 1 0
0 0 1 0 1 1 0 1 0 1 0
1 1 0 0 1 0 0 1 1 0 1
0 0 0 1 0 1 1 0 0 1 0
আমরা এই ম্যাট্রিক্সের কিছু বিট সেট করতে চাই যাতে এটি একটি সংক্ষিপ্ত প্রসারণ গঠন 1
করে, যার 1
মধ্যে প্রত্যক্ষ বা অপ্রত্যক্ষভাবে 1
অরথোগোনাল আন্দোলনের মাধ্যমে একে অপরের সাথে সংযুক্ত থাকে :
0 1 1 1 1 1 1 0 0 1 0
0 1 0 1 0 0 1 0 1 1 0
0 1 1 0 1 1 1 1 0 1 0
1 1 0 0 1 0 0 1 1 1 1
0 0 0 1 1 1 1 0 0 1 0
(আপনি 1
আপনার ব্রাউজারের "সন্ধান" বৈশিষ্ট্যটি অনুসন্ধান করে এটি আরও স্পষ্ট দেখতে পাচ্ছেন ))
তবে আমরা যে বিট সেট করেছিলাম তাও কম করতে চাই।
কাজটি
বিটস বা বুলিয়ানগুলির একটি ম্যাট্রিক্স (বা অ্যারের অ্যারে) দেওয়া, ন্যূনতম সংখ্যার বিটগুলি প্রদান করুন যা গুলিগুলির একটি ধারাবাহিক মহাদেশ তৈরি করতে সেট করতে হবে 1
। ম্যাট্রিক্সের একটি সেট বিট থেকে অন্য সেট বিটগুলিতে কেবল একটি অर्थোগোনাল দিক ভ্রমণ করেই ম্যাট্রিক্সের অন্য সেটটিতে পৌঁছানো সম্ভব।
এটি কোড-গল্ফ , তাই সংক্ষিপ্ততম বৈধ জমা (বাইটগুলিতে পরিমাপ করা) জয়ী।
পরীক্ষার কেস
0 1 0 1 1 0 1 0 0 1 0
0 1 0 1 0 0 1 0 1 1 0
0 0 1 0 1 1 0 1 0 1 0
1 1 0 0 1 0 0 1 1 0 1
0 0 0 1 0 1 1 0 0 1 0
=> 6
1 0 0 0 0 0 1 0 0
1 1 0 0 1 1 1 0 0
1 1 1 0 1 1 1 1 1
0 1 0 0 0 0 0 0 0
0 0 0 0 0 1 1 1 1
0 1 0 0 0 0 1 1 0
1 0 0 0 0 0 1 0 0
=> 4
0 0 0 1 1 1 0 1 1
0 0 1 0 0 0 0 1 0
0 0 1 1 1 1 1 1 0
1 1 0 0 1 1 0 0 0
0 0 1 1 1 0 0 1 1
0 1 1 1 0 0 0 0 0
1 1 1 0 0 1 1 1 0
1 1 1 0 1 1 0 1 1
0 0 0 0 1 0 0 0 1
1 1 0 0 1 1 0 1 1
0 0 0 0 0 0 0 1 0
0 1 1 1 1 0 0 0 0
0 0 0 1 1 0 0 0 1
0 1 0 0 1 0 1 1 0
0 1 1 1 0 0 0 0 1
=> 8
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
=> 0
1
ম্যাট্রিক্স না থাকলে আমাদের কী করা উচিত ?