ত্রিভুজাকার গ্রিড: সহজভাবে সংযুক্ত পলিমামন্ডস


9

আমরা যখন ত্রিভুজাকার গ্রিডের কিক এ থাকি তখন আমি এটি উল্লেখ করতে চাই যে ত্রিভুজাকার গ্রিডে পলিওমিনোসের সমতুল্য রয়েছে । এগুলিকে পলিয়ামন্ডস বলা হয় এবং এগুলি তাদের প্রান্তগুলির সাথে একত্রে দ্বিখণ্ডিত ত্রিভুজগুলি মিশ্রণ করে গঠিত হয়। এই চ্যালেঞ্জের মধ্যে আপনি সিদ্ধান্ত নিতে যাচ্ছেন যে ত্রিভুজাকৃতির গ্রিডের কোন উপগ্রহগুলি পলিওমন্ডস এবং সেগুলির মধ্যে গর্ত রয়েছে কিনা। যেহেতু এটিতে একটি ছিদ্রযুক্ত পলিমিড তৈরি করতে কেবল 9 টি ত্রিভুজ লাগে, আপনার কোডটি যতটা সম্ভব সংক্ষিপ্ত হওয়া দরকার।

গ্রিড

আমরা ইনপুটটির জন্য মার্টিনের ত্রিভুজাকার গ্রিড লেআউটটি ব্যবহার করব :

একটি ত্রিভুজাকার গ্রিড

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

** **
*****

ক্ষুদ্রতম পলিআইন্ডারের সাথে মিল রয়েছে যার মধ্যে একটি গর্ত রয়েছে:

গর্ত সহ 9-আইরাম

গর্ত

একটি পলিইমন্ড যা উপরের উদাহরণের মতো একটি গর্ত রয়েছে (এমন একটি অঞ্চল যা পলিম্যান্ডের একটি অংশ নয়, যা অঞ্চলগুলির চারপাশে ঘিরে রয়েছে ) নয়, টপোলজিকভাবে বলতে গেলে, কেবল সংযুক্ত

চ্যালেঞ্জ

উপরে উল্লিখিত হিসাবে একটি "স্টার মানচিত্র" হিসাবে ইনপুট হিসাবে গ্রহণ করে এমন একটি ফাংশন বা প্রোগ্রাম লিখুন এবং যদি ত্রিভুজাকার গ্রিডের নির্দেশিত উপসেটটি কেবল সংযুক্ত পলিমিয়াম হয় তবেই সত্যবাদী আউটপুট ।

আরও উদাহরণ

*** ***
*******

পলিম্যান্ডার সাথে মিল রয়েছে

কোনও গর্ত ছাড়াই ১৩-আইরাম

যা কেবল সংযুক্ত থাকে।


*   *
** **
 ***

পলিম্যান্ডার সাথে মিল রয়েছে

9-আইমন্ড সঙ্গে কোনও গর্ত নেই

যা কেবল সংযুক্ত থাকে।


**  **
*** **
 ****

সাথে সঙ্গতিপূর্ণ -polyiamond

১৩ টি ত্রিভুজ যা আকর্ষণীয় কিছু নয়

যা কেবল সংযুক্ত হবে না যদিও তা ছিল একটি polyiamond।

ইনপুট স্পেক

  • ইনপুটটিতে কেবল তারকাচিহ্ন, স্থান এবং লাইন ফিড থাকবে।
  • ইনপুটটির প্রথম অক্ষরটি সর্বদা একটি স্থান বা তারকাচিহ্ন (গ্রিডের উপরের বাম কোণে wardর্ধ্বমুখী নির্দেশক ত্রিভুজটির সাথে সম্পর্কিত) হবে।
  • সর্বদা প্রথম এবং শেষ লাইনগুলিতে সর্বদা কমপক্ষে একটি নক্ষত্রপুঞ্জ থাকবে।
  • কোনও গ্যারান্টি নেই যে প্রথম লাইনের পরে লাইনগুলি খালি হবে না। একটি সারিতে দুটি লাইনফিড বৈধ ইনপুটটিতে উপস্থিত হতে পারে।
  • লাইন দৈর্ঘ্য সব একই হতে হবে না।

জয়ের শর্ত

এই , তাই বাইট জেতে সংক্ষিপ্ত উত্তর।

পরীক্ষার কেস

সত্যবাদী মানচিত্র:

1) *

2) *
   *

3) **

4) *** ***
   *******

5) *   *
   ** **
    ***

6) *
   **
    *

7)    **
     ***
   ****

8) ****
   **   *
    *****

9) ***********
   **    **  **
    ****  **  **
              **
   ************

মিথ্যা মানচিত্র:

1) *
   *
   *

2) * *

3) *
    *

4)  **
   **

5) ***

   ***

6) ** **
   *****

7) **  **
   *** **
    ****

8)  *
    *

9) *****
   **   *
    *****

1
সুন্দর প্রশ্ন যদি ত্রিভুজাকৃতির গ্রিডগুলি কোনও জিনিস হয়ে উঠতে পারে তবে আমি কি তাদেরকে উদাহরণস্বরূপ প্রস্তাবিত করার AV VA\nVAVAVপরিবর্তে ** **\n*****এটি উপস্থাপন করতে পারি যে এটি মানুষের পক্ষে দৃশ্যমান করা সহজ করে তোলে। আমি ইতিমধ্যে মার্টিনের এএসসিআইআই চিত্রের একটি সম্পাদনা করেছি।
স্তর নদী সেন্ট

আমি মানুষের পাঠযোগ্যতার সাথে বিশেষভাবে উদ্বিগ্ন ছিলাম না। আমি ছোট থাকতে থাকতে কোনও প্রোগ্রাম পড়তে সহজ হতে পারে যা করতে চেয়েছিলাম।
কুইন্টোপিয়া

সুতরাং মূলত, মিথ্যা iff একটি বিভাগ আছে শুধুমাত্র কোণ দ্বারা "সংযুক্ত"?
মাইকেল ক্লিন

1
বা যদি এমন কোনও অংশ থাকে যা একেবারেই সংযুক্ত নয়। মার্টিন এটিকে এভাবে রেখেছেন: সত্য যদি if চিত্র এবং গ্রাউন্ড উভয় প্রান্তের সাথে সংযুক্ত থাকে, যাতে 2 বন্যা ভরাট বিমানটিকে পুনরুদ্ধার করতে যথেষ্ট।
কুইন্টোপিয়া

উত্তর:


4

শামুক , 95 বাইট

F&
lr|=((ul.)2 ,l~a~)d|!((ul.)2 ,l~a~)u}\*}+l\ ,~a~|{\ (lr|=((ul.)2 ,l~a~)d|!((ul.)2 ,l~a~)u}+~

এটি সত্যই সদৃশ দ্বারা ভুগেছে, কারণ আমি ম্যাক্রোগুলি বা কোনও ধরণের ব্যাক-রেফারেন্স প্রয়োগ করি নি। এটি যা করে তা হ'ল প্রতিটি নক্ষত্রের জন্য, শীর্ষ লাইনের বামতম তারার দিকে একটি পথ রয়েছে; এবং প্রতিটি স্থানের জন্য, গ্রিডের প্রান্তে যাওয়ার পথ রয়েছে।

F&                         ,, option F: pad lines with spaces to the length of the longest
                           ,, option &: print 1 iff match succeeds from every cell
lr                         ,, direction left or right, or
      | =((ul.)2 ,l~a~) d  ,, direction down, if we are an even number of orthogonal moves from the top left
      | !((ul.)2 ,l~a~) u  ,, or, direction up if we are odd number of moves from the top left
    }  \*                  ,, literal '*'
}+                         ,, 1 or more times
l\ ,~a~                    ,, check that we are on the leftmost * in the top line

|                          ,, the part before this is for starting on '*'; part after for starting on ' '

{ \                        ,, literal ' '
    (   lr                 ,, direction left or right, or
      | =((ul.)2 ,l~a~) d  ,, same drill as before...
      | !((ul.)2 ,l~a~) u 
}+                         ,, 1 or more times
~                          ,, end on an out of bounds cell

আমি বুঝতে পারি না এটি কীভাবে কাজ করে তবে এটি পুরোপুরি কার্যকর হয় works
কুইন্টোপিয়া

3

সিজেম, 101 98 বাইট

qN/_z,f{' e]}{S2*f+W%z}4*:eeee::f+:~{_(aL{+_{_2,.+1$2,.-@_:+1&!2*(a.+}%2${a1$&},\;@1$-@@}h;\;-}2*!

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

অবশেষে সিজেএম-এ বন্যার ভরাট বাস্তবায়নের ভয়কে আমি কাটিয়ে উঠি। এটি আমার প্রত্যাশার মতো কুৎসিত এবং এটি অবশ্যই গল্ফ করা যেতে পারে।

সাধারণ ধারণাটি হ'ল দুটি বন্যা ভরাট করা (যা বাস্তবে অপ্রত্যাশিত কক্ষগুলির তালিকা থেকে অপসারণ হিসাবে প্রয়োগ করা হয়)। প্রথম পাসটি প্রান্ত থেকে পৌঁছনযোগ্য সমস্ত স্থান সরিয়ে ফেলবে। দ্বিতীয় পাসটি প্রথমে *পঠন ক্রমে প্রথমটি বেছে নেবে এবং সেগুলি থেকে পৌঁছাতে সক্ষম সমস্ত ত্রিভুজগুলি সরিয়ে ফেলবে। যদি এবং কেবল যদি ফলাফলের তালিকাটি খালি থাকে তবে পলিআইন্ডামটি কেবল সংযুক্ত ছিল:

  • যদি পলিঅ্যামন্ডের একটি গর্ত থাকে তবে প্রথম বন্যার ভরাটটি সেই গর্তে পৌঁছাতে এবং সরাতে অক্ষম।
  • যদি ইনপুটটিতে বেশিরভাগ সংযোগ বিচ্ছিন্ন পলিয়ামন্ড থাকে, তবে দ্বিতীয় বন্যা ভরাটগুলি তাদের সকলের কাছে পৌঁছাতে এবং অপসারণ করতে অক্ষম।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.