আপনি যদি প্রতিটি বর্ণমালা এবং প্রান্তে শব্দের হিসাবে ভার্টেক্সের নির্দেশিত গ্রাফ উপস্থাপন করতে 26X26 ম্যাট্রিক্স তৈরি করেন। উদাহরণস্বরূপ শব্দ - অ্যাপলটি এ থেকে ই নির্দেশিত প্রান্তের সাথে শীর্ষটি A এবং E কে সংযুক্ত করে Now ও (ই) অ্যালগরিদমের একটি হ'ল এলোমেলোভাবে এক জোড়া উল্লম্ব থেকে শুরু করা। তাদের মধ্যে একটি পথ সন্ধান করুন। যতক্ষণ সম্ভব এটি সম্ভব না হওয়া পর্যন্ত পথটি শিথিল করুন।
আপডেট
@ গ্লেনএইচ www. আমি সম্প্রতি www.hackerearth / jda তে একই প্রশ্নটি সমাধান করেছি, সেরা সমাধানের ক্ষেত্রে তুলনামূলক চিহ্ন ছিল এবং আমি নীচের অনুমোদনের সাথে সর্বোচ্চ নম্বর পেয়েছি-
শব্দের তালিকা দেওয়া। তাদের দ্বারা গঠিত হতে পারে এমন দীর্ঘতম চেইনটি সন্ধান করুন। প্রতিটি শব্দের সাথে শেষ শব্দের শেষে * শেষ হওয়া অক্ষর দিয়ে শুরু হয় তবে একটি শৃঙ্খলা বৈধ।
অ্যাপ্রোচ =
1) বর্ণমালার গ্রাফটি শীর্ষ এবং শব্দের প্রান্ত হিসাবে তৈরি করুন। একাধিক প্রান্ত ব্যবহারের পরিবর্তে প্রান্তের সংখ্যার সমান ওজন সহ একটি ব্যবহার করুন।
2) সর্বোচ্চ প্রান্ত সহ গ্রাফের দৃ graph়ভাবে সংযুক্ত উপাদানটি সন্ধান করুন। অস্থায়ীভাবে অন্যান্য প্রান্তগুলি বাতিল করুন।
3) প্রতিটি শীর্ষবিন্দুটির জন্য এর অনগ্রসরকে তার বহির্মুখের সমান করুন।
৪) এখন গ্রাফে তাদের বিদ্যমান ইউলিরিয়ান সার্কিট। খুজেন.
5) এখন বাকি গ্রাফের মধ্যে (আর্ট অরিগনাল গ্রাফটি নির্বাচিত দৃ connected়ভাবে সংযুক্ত উপাদানগুলির মধ্যে প্রথম ভার্টেক্সের সাথে দীর্ঘতম ট্রেইলটি খুঁজে পান I আমি মনে করি এটি এনপি হার্ড।
)) এলিরিয়ান সার্কিটকে ইউররিয়ান সার্কিটকে ট্রেনে রূপান্তর করতে উপরের ট্রেইলটি অন্তর্ভুক্ত করুন।
কেন - আমি গ্রহণ করি যে এই প্রশ্নটি সম্ভবত এনপি হার্ড (অনুমান, গণিতের সাথে কথা বলছেন না)। উপরোক্ত পদ্ধতিটি কার্যকরভাবে কার্যকর হয় যখন অভিন্ন বিতরণকৃত শব্দের দীর্ঘ তালিকা (1000+) থাকে (যেমন উপরের পদ্ধতির জন্য ডাব্লিউসি হওয়ার উদ্দেশ্যে নয়)। আসুন ধরে নেওয়া যাক প্রদত্ত তালিকাটিকে উপরে বর্ণিত গ্রাফে রূপান্তরিত করার পরে এটি ভাগ্যক্রমে একটি ইউরিরিয়ান গ্রাফ হিসাবে পরিণত হয়েছে ( শর্তাবলীর জন্য http://en.wikedia.org/wiki/Eulerian_path দেখুন ), তবে কোনও সন্দেহ ছাড়াই আমরা উত্তরটি বলতে পারি উপরের প্রশ্নের পি হ'ল আসলে গ্রাফের ইউুলেরিয়ান পাথ (এটি করার জন্য খুব সাধারণ পদ্ধতির জন্য http://www.graph-magics.com/articles/euler.php দেখুন এবং আপনার গ্রাফটি আছে কিনা তা যাচাই করতে এটি দেখুন একক http://www.geeksforgeeks.org/ স্ট্রংলি- সংযুক্ত- কম্পোনেন্টস /এবং যদি অস্থায়ীভাবে অন্যান্য ছোট স্ক্যাকগুলি পরিষ্কার না করে কারণ একক স্ক্যাকের জন্য ইউলিরিয়ান পাথ বিদ্যমান)। সুতরাং ভাগ্যবান নয় মামলার ক্ষেত্রে (যা প্রায় সব ক্ষেত্রেই ঘটে) আমি তাদের ভাগ্যবান কেসে রূপান্তরিত করার চেষ্টা করি (অর্থাত্ ইউুলেরিয়ান ট্রেইল শর্তটি সম্পন্ন হয়)। কিভাবে এই কাজ করতে? আমি অপ্রাসঙ্গিক প্রান্তগুলির জন্য অনুসন্ধানের প্রবণতা বাড়ানোর চেষ্টা করেছি (অনিগ্রহের চেয়ে প্রান্তিকের চেয়ে প্রান্তভাগের সাথে শীর্ষস্থান থেকে সূচিত পথের প্রান্তের সেট এবং প্রান্তিকের চেয়ে আরও বড় অঙ্কের সমান্তরকে শেষ হওয়া) tried গভীরতার অনুসন্ধান বৃদ্ধি করার অর্থ হ'ল প্রথমে আমি পথের দুটি প্রান্তের চেয়ে পথের এমন এক প্রান্তের সমস্ত সেট অনুসন্ধান করেছি। এটি প্রথম চেহারাতে মনে হতে পারে যে ith গভীরতার অনুসন্ধানে ও (নোডগুলি) i) এভাবে ও এর মোট সময় জটিলতা (নোড + নোডস ^ 2 + নোডস ^ 3 + ....) লাগবে যতক্ষণ না এটি ভাগ্যবান কেস হয়। তবে অ্যামোরিটাইজড বিশ্লেষণটি এটিকে ও (প্রান্তগুলি) উপভোগ করবে। এটি একবারে কমে গেলে ভাগ্যবান কেসটি ইউলেরিয়ান সার্কিটটি সন্ধান করুন।
এখানে অবধি সমস্ত বহু সময় ছিল। এটি প্রায় সেরা সমাধান দিতে হবে। তবে আপনার সমাধানটি আরও বাড়ানোর জন্য (নিখুঁত সমাধান এনপি হার্ড হ'ল) নির্বাচিত স্ক্যাকের একটি শীর্ষে অবস্থিত একটি দীর্ঘ পথচিহ্ন খুঁজে পাওয়ার জন্য অবশিষ্ট গ্রাফটিতে কিছু লোভী পদ্ধতির চেষ্টা করুন। এটিকে আরও বাড়ানোর জন্য উপরের সন্ধান পাওয়া ইউরিরিয়ান ট্রেইলে এটি যুক্ত করুন