নিঃসঙ্গ দ্বীপপুঞ্জ


10

ইনপুট:

দুটি স্বতন্ত্র (alচ্ছিক) মান সমেত একটি 2D অ্যারে। বিধিগুলি ব্যাখ্যা করার সময় আমি 0 এবং 1 ব্যবহার করব । ইনপুট ফর্ম্যাট অবশ্যই নমনীয়।


চ্যালেঞ্জ:

জিরোস হ'ল জল, এবং একটি দ্বীপ are নিঃসঙ্গতা নিশ্চিত করার জন্য, আপনার কাজ হ'ল সারি এবং শূন্যের কলামগুলি সন্নিবেশ করে সমস্ত দ্বীপকে জলে ঘিরে রাখা। আপনি জল অপচয় করতে চান না, সুতরাং আপনাকে অবশ্যই যুক্ত পরিমাণের পরিমাণ কমিয়ে আনতে হবে। একাধিক সমাধানের ক্ষেত্রে একই পরিমাণে জল যুক্ত হওয়া দরকার, তারপরে আপনার সারি নয়, জলের কলাম যুক্ত করা উচিত। আমি পরীক্ষার ক্ষেত্রে এটি দেখাব।


আউটপুট:

নতুন, পরিবর্তিত 2D অ্যারে। আউটপুট ফর্ম্যাট অবশ্যই নমনীয়।


পরীক্ষার কেস:

ইনপুট এবং আউটপুট ড্যাশ দ্বারা পৃথক করা হয়। যুক্ত শূন্যগুলি বোল্ড ফন্টে দেখানো হয়। আপনি যদি পরীক্ষার কেসগুলিকে আরও সুবিধাজনক বিন্যাসে রূপান্তর করতে চান তবে এখানে একটি উত্তর ব্যবহার করুন ।

1
---
1

1 1
---
1 0 1

1 1
1 1
---
1 0 1
0 0 0
1 0 1

1 0
0 1
---
1 0 0
0 0 1

মনে রাখবেন যে আমরা শূন্যের এক সারি নয়, শূন্যগুলির একটি কলাম যুক্ত করেছি। এটি কারণ প্রয়োজনীয় জিরোগুলির সংখ্যা সমান এবং কলামগুলি পছন্দ করা উচিত।


1 0 0 0 1
0 1 0 1 0
0 0 1 0 0
0 1 0 1 0
---
1 0 0 0 1
0 0 0 0 0
0 1 0 1 0
0 0 0 0 0
0 0 1 0 0
0 0 0 0 0
0 1 0 1 0

নোট করুন যে আমরা সারিগুলি সংযুক্ত করেছি, কলামগুলি নয়, কারণ এতে কমপক্ষে অতিরিক্ত শূন্যের প্রয়োজন।


0 0 1 0 0
0 1 1 1 0
---
0 0 0 1 0 0 0
0 0 0 0 0 0 0
0 1 0 1 0 1 0

এটি উভয় কলাম এবং একটি সারি প্রয়োজন।


0 0 1 0 0
0 1 0 1 0
---
0 0 0 1 0 0 0
0 1 0 0 0 1 0

এক সারির চেয়ে দুটি কলাম যুক্ত করা ভাল, কারণ এতে কম জল প্রয়োজন less


0 0
1 0
0 1
1 0
0 0
---
0 0 
1 0
0 0 
0 1 
0 0 
1 0
0 0

এক কলামের চেয়ে দুটি সারি যুক্ত করা ভাল, যেহেতু এতে কম জল প্রয়োজন।



ড্যামনিত, স্টিও, এখন আমি আবারও "জ্যাক স্প্যারো" আমার মাথায় আটকে গেছি!
শেগি

এই সমস্যাটি দ্বিপক্ষীয় গ্রাফের উপর ভারটেক্স কভার সমস্যার সমতুল্য এবং উইকিপিডিয়া অনুসারে এটি বহুবর্ষীয় সময়ে সমাধান করা যেতে পারে।
ব্যবহারকারী 202729

আমি আমার মন পরিবর্তন করেছি ... এটি ওজন হতে পারে। যাইহোক পর্যাপ্ত পরিমাণে বর্গক্ষেত্রের ম্যাট্রিক্সের জন্য এটি (আশাকরি) সমতুল্য। সুতরাং আপনার অ্যালগরিদম যদি "খুব সাধারণ" হয় তবে সাবধান হন
ব্যবহারকারী 202729

আমার মনে হয় আমার বহু বহু সময়ের আলগোরিদিম আছে।
ব্যবহারকারী 202729

উত্তর:


2

জেলি , 37 বাইট

ṫƤ-S€ZƊ⁺FỊẠ
Z_,,WƲ€ŒpẎ€Ʋ⁺€ẎLÞFL$ÞṚÇÞṪ

এটি অনলাইন চেষ্টা করুন!

পূর্ণসংখ্যার 2D অ্যারে ফিরিয়ে ফাংশন। নোট করুন যে প্রাকৃতিকভাবে জেলি সিঙ্গলটন তালিকায় এর মান হিসাবে প্রদর্শিত হয় ফলে Gআউটপুট ফর্ম্যাট করতে ব্যবহৃত হয়।


  • লিঙ্ক 1: রিটার্ন (বৈধতা)।
  • লিঙ্ক 2: মূল প্রোগ্রাম।

প্রোগ্রামটি তাত্পর্যপূর্ণ সময়ে চলে, তবে এখনও পর্যন্ত আমি কোনও বহু-কালীন অ্যালগরিদমের কথা ভাবতে পারি নি। Ƥডায়াডিক ফাংশন ব্যবহার করে, যা বৈশিষ্ট্যটি চ্যালেঞ্জকে পোস্টডেট করে।


2

পাইথন 2 , 374 346 340 339 323 317 বাইট

R=range;L=len
def f(a):
 w,h=L(a[0]),L(a);W=[]
 for i in R(2**w):
	A=zip(*a)
	for c in R(w):A[-c:-c]=[[0]*h]*(i&1<<c>0)
	for j in R(2**h):
	 B=zip(*A);x=L(B[0])
	 for r in R(h):B[-r:-r]=[(0,)*x]*(j&1<<r>0)
	 y=L(B);W+=[(w*h-x*y,x,B)]*all(sum(B[i][j:j+2]+B[i+1][j:j+2])<2for i in R(y-1)for j in R(x))
 return max(W)[2]

এটি অনলাইন চেষ্টা করুন!


আমি মনে করি [:]আউটপুটকে প্রভাবিত না করে প্রথমটিকে সরিয়ে ফেলা যায়।
ব্যবহারকারী 202729

@ ব্যবহারকারী ২০২27২৯, ধন্যবাদ, আমি মনে করি এটি পারে। আমি যদিও :) ইতিমধ্যে এটি পরিবর্তন চাই
TFeld
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.