आइए कल्पना करें कि हमारे पास बिट्स का एक मैट्रिक्स है (जिसमें कम से कम एक है 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
मैट्रिक्स में नहीं होने पर हमें क्या करना चाहिए ?