ভূমিকা
এই চ্যালেঞ্জে, আপনার কাজ হ'ল একটি প্রোগ্রাম লিখুন যা সিদ্ধান্ত নিয়েছে যে দুটি প্রদত্ত গাছ আইসমোর্ফিক নয়। গাছ বলতে বোঝায় একটি নির্দেশিত অ্যাসাইক্লিক গ্রাফ যেখানে প্রতিটি নোডের মূল ছাড়াই হ'ল একটি বহির্গমন প্রান্ত থাকে, যার কোনও কিছুই নেই। দুটি গাছ আইসমোর্ফিক হয় যদি কোনওটি নোডের নাম পরিবর্তন করে অন্যকে রূপান্তরিত করা যায়। উদাহরণস্বরূপ, দুটি গাছ (যেখানে প্রতিটি প্রান্ত পয়েন্ট করে)
0 0
/|\ /|\
1 3 4 1 2 5
|\ /|
2 5 3 4
সহজেই isomorphic হতে দেখা যায়।
আমরা L
নিম্নলিখিত উপায়ে nonnegative পূর্ণসংখ্যার তালিকা হিসাবে একটি গাছ এনকোড করি । গাছের মূলের লেবেল 0
রয়েছে এবং এর নোডও রয়েছে 1,2,...,length(L)
। প্রতিটি নোডের (1-ভিত্তিক সূচক ব্যবহার করে) এর i > 0
বহির্গামী প্রান্ত রয়েছে L[i]
। উদাহরণস্বরূপ, তালিকা (উপাদানগুলির নীচে প্রদত্ত সূচকগুলি সহ)
[0,0,1,3,2,2,5,0]
1 2 3 4 5 6 7 8
গাছ এনকোড
0
/|\
1 2 8
| |\
3 5 6
| |
4 7
ইনপুট
আপনার ইনপুটগুলি দেশীয় ফর্ম্যাট বা আপনার ভাষায় প্রদত্ত নন-সংকেত পূর্ণসংখ্যার দুটি তালিকা। উপরে বর্ণিত পদ্ধতিতে তারা দুটি গাছ এনকোড করে। সেগুলি সম্পর্কে আপনি নিম্নলিখিত শর্তগুলি ধরে নিতে পারেন:
- এগুলি খালি নেই।
- তাদের দৈর্ঘ্য একই।
- প্রতিটি তালিকা সমস্ত (1-ভিত্তিক) সূচকের জন্য
L
সন্তুষ্ট ।L[i] < i
i
আউটপুট
গাছগুলি আইসোমরফিক হলে আপনার আউটপুট একটি সত্যবাদী মান এবং যদি মিথ্যা মান না হয় value
বিধি এবং স্কোরিং
আপনি একটি সম্পূর্ণ প্রোগ্রাম বা একটি ফাংশন লিখতে পারেন। সর্বনিম্ন বাইট গণনা জয়, এবং মান লুফোলগুলি অনুমোদিত নয়। কোনও সময় বিধিনিষেধ নেই, তবে বিল্ট-ইনগুলি সিদ্ধান্ত নেয় যে গাছ বা গ্রাফ আইসোমর্ফিজমকে অনুমোদিত নয়।
পরীক্ষার মামলা
সত্য ঘটনা
[0] [0]
[0,1,2,1] [0,1,1,3]
[0,1,1,3,3] [0,1,2,2,1]
[0,1,0,1,2,3,3,0] [0,0,2,1,0,4,2,1]
[0,1,2,3,1,2,3,0,8] [0,1,0,3,3,4,4,7,7]
মিথ্যা উদাহরণ
[0,0] [0,1]
[0,1,2,0,3,3,4] [0,1,2,3,0,4,3]
[0,1,0,1,2,3,3,0] [0,0,2,1,0,5,2,1]
[0,1,1,0,1,3,2,1,5] [0,1,0,3,3,3,2,5,2]
[0,1,2,3,1,2,3,0,8] [0,1,0,1,4,4,5,6,6]
[0,1,0,2,0,3,0,4,0,5] [0,0,2,1,0,3,4,0,0,9]