আমাদেরকে প্রান্তের সংখ্যা Noe এবং শীর্ষবিন্দুর সংখ্যা দিয়ে দেওয়া হয়েছে নভেম্বর। লক্ষ্য হল ন্যূনতম এবং সর্বাধিক সংখ্যক বিচ্ছিন্ন শীর্ষবিন্দু খুঁজে বের করা যা এই ধরনের গ্রাফগুলিতে সম্ভব যেগুলির কোন প্রান্ত নেই এবং কোন শীর্ষবিন্দু গণনা নেই।
একটি বিচ্ছিন্ন শীর্ষবিন্দু হল যেটির সাথে কোন প্রান্ত সংযুক্ত নেই।
- ন্যূনতম বিচ্ছিন্ন শীর্ষবিন্দুর জন্য
আমরা নিশ্চিত করব যে প্রতিটি প্রান্ত বিচ্ছিন্ন। (কোনও দুটি প্রান্তে সাধারণ শীর্ষবিন্দু নেই) প্রতিটি প্রান্তের জন্য শুধুমাত্র 2টি শীর্ষবিন্দু প্রয়োজন৷ তাই,
অ-বিচ্ছিন্ন শীর্ষবিন্দুর সংখ্যা =2 * সংখ্যা। প্রান্তের
বিচ্ছিন্ন শীর্ষবিন্দুর সংখ্যা =মোট শীর্ষবিন্দু - অ-বিচ্ছিন্ন শীর্ষবিন্দুর গণনা।
যদি না. শীর্ষবিন্দু হল <=2 * সংখ্যা। প্রান্তের, মানে সমস্ত শীর্ষবিন্দুর একটি প্রান্ত সংযুক্ত আছে। তাই না। বিচ্ছিন্ন শীর্ষবিন্দু হল 0।
- সর্বোচ্চ বিচ্ছিন্ন শীর্ষবিন্দুর জন্য
এর জন্য আমরা এমন একটি বহুভুজ তৈরি করার চেষ্টা করব যাতে সমস্ত প্রান্তগুলি ন্যূনতম চূড়াগুলির সাথে সংযুক্ত থাকে৷ এটি সম্ভব যখন আমাদের একটি বহুভুজ থাকে যাতে প্রতিটি শীর্ষবিন্দুর জোড়াও তাদের মধ্যে তির্যক থাকে৷
প্রদত্ত 5টি শীর্ষবিন্দু এবং 6টি প্রান্তের জন্য, বর্গ হল সেই বহুভুজ যার 6টি প্রান্ত 2টি কর্ণ রয়েছে যাতে শুধুমাত্র 4টি শীর্ষবিন্দু রয়েছে৷ 1 শীর্ষবিন্দু বিচ্ছিন্ন হয়ে যায় এবং এটি সর্বাধিক।
n পার্শ্বযুক্ত বহুভুজে এক শীর্ষ থেকে অন্য শীর্ষ পর্যন্ত কর্ণের সংখ্যা n*(n-3)/2। মোট প্রান্ত=n*(n-1)/2
ইনপুট
না। শীর্ষবিন্দু 5, প্রান্ত 6
আউটপুট
সর্বনিম্ন বিচ্ছিন্ন শীর্ষবিন্দু 0। সর্বোচ্চ বিচ্ছিন্ন শীর্ষবিন্দু 1।
ব্যাখ্যা
উপরের চিত্রে দেখানো হয়েছে।
ইনপুট - না। শীর্ষবিন্দু 2, প্রান্ত=1
আউটপুট − ন্যূনতম বিচ্ছিন্ন শীর্ষবিন্দু 0. সর্বোচ্চ বিচ্ছিন্ন শীর্ষবিন্দু 0৷
ব্যাখ্যা − অন্তত দুটি শীর্ষবিন্দুর মধ্যে একটি প্রান্ত তৈরি হয়৷
নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি
-
পূর্ণসংখ্যা noe এবং nov-এ নং রয়েছে। প্রান্ত এবং শীর্ষবিন্দুর।
-
ফাংশন খুঁজে পাওয়া বিচ্ছিন্ন শীর্ষবিন্দু (int v, int e) প্রান্ত এবং শীর্ষবিন্দুকে পরামিতি হিসাবে নেয় এবং সম্ভাব্য সর্বনিম্ন এবং সর্বোচ্চ বিচ্ছিন্ন শীর্ষবিন্দুগুলিকে প্রিন্ট করে৷
-
যদি না. শীর্ষবিন্দু হল <=2*e, মানে কোন বিচ্ছিন্ন শীর্ষবিন্দু নেই। অন্যথায় অ-বিচ্ছিন্ন শীর্ষবিন্দুগুলি 2*e(সর্বোচ্চ), তাই ন্যূনতম বিচ্ছিন্ন হবে v-2*e৷
-
সর্বাধিক বিচ্ছিন্ন শীর্ষবিন্দু গণনা করার জন্য, i=1 থেকে শুরু করুন। শীর্ষবিন্দুগুলির, যদি (i * (i - 1) / 2>=e) বিরতি দেয় কারণ শুধুমাত্র i শীর্ষবিন্দুগুলি e প্রান্তগুলির জন্য যথেষ্ট৷
-
আমি সম্ভাব্য সর্বোচ্চ বিচ্ছিন্ন শীর্ষবিন্দু সংরক্ষণ করি।
উদাহরণ
#includeNamespace ব্যবহার করে std;void findisolatedvertices(int v, int e) edge cout <<"বিচ্ছিন্ন শীর্ষবিন্দুর সর্বনিম্ন সংখ্যা:" <<0 < =e) বিরতি; } cout < আউটপুট
<পূর্ব>সর্বনিম্ন নম্বর বিচ্ছিন্ন শীর্ষবিন্দুর:1 সর্বোচ্চ সংখ্যা বিচ্ছিন্ন শীর্ষবিন্দুর:2