به نام خدا دانشگاه صنعتی شریف – دانشکده مهندسی کامپیوتر ساختمان های گسسته – علی شریفی زارچی تمرین عملی دوم قطر درخت گراف همبند بدون دور را درخت میگوییم .بین هر دو راسی کوتاهترین فاصله را در نظر میگیریم؛ از بین تمام این کوتاهترین فاصلهها بزرگترین آنها را قطر درخت میگوییم .برنامهای بنویسید که با گرفتن درخت از ورودی قطر آن را محاسبه کند. قالب ورودی در خط اول ورودی nتعداد رأسهای درخت آمده است .رأسهای درخت از 1تا سپس در n-1خط بعدی در هر خط دو عدد آمده nشماره گذاری شدهاند. است که مشخص میکند که کدام دو راس به هم متصل هستند( .در ۷۰درصد است و در ۳۰درصد باقیمانده n<100000 از نمرهی این سوال n < 100 است) قالب خروجی در خط اول خروجی اندازهی قطر گراف را بنویسید. مثال ورودی 7 12 23 73 54 35 56 مثال خروجی 4 برجهای هانوی سه میله و تعدادی دیسک در اندازه های متفاوت داریم .این دیسکها از بزرگ به کوچک با شماره 1تا nشمارهگذاری شدهاند .میلهها هم از 1 تا 3شماره گذاری شدهاند .در حالت اولیه این nدیسک روی این 3میله به نحوی قرار گرفتهاند که هیچ دیسکی با اندازهی بزرگ روی دیسک با اندازهی کوچکتر قرار نگرفته است .در هر حرکت میتوانیم از یک میله باالترین دیسک آن را خارج کرده و روی میلهی دیگری قرار دهیم با این شرط که شرط هانوی نقض نشود؛ یعنی هیچ دیسکی با اندازهی بزرگتر روی دیسک با اندازهی کوچکتر قرار نگیرد .با دنبالهای از این حرکات می- خواهیم کاری کنیم که همهی دیسکها از بزرگ به کوچک ( یعنی از دیسک شمارهی 1تا دیسک شماره )nروی میلهی 1مرتب شده باشند .شما باید برنامهای بنویسید که این کار را در کمترین تعداد حرکات انجام دهد. به عالوه شما باید نحوهی انجام این کار را نیز بگویید. قالب ورودی در خط اول ورودی ، nتعداد دیسکها آمده است .سپس در سه خط بعدی وضعیت اولیه میلههای 1تا 3به ترتیب آمده است .در سه خط بعدی ،در ابتدا تعداد دیسکهای میلهی متناظر آمده است .سپس شمارهی هر خط َ دیسکهای روی آن میله از پایین به باال آمده است(.که قاعدتا این اعداد صعودی هستند) .بین هر دو عدد یک سطر یک فاصله قرار دارد .در ضمن . n <= 16 قالب خروجی در خط اول خروجی ابتدا تعداد کمینهی حرکات برای انتقال همهی دیسکها به میلهی 1را بنویسید .سپس در خطوط بعدی حرکات را به ترتیب بنویسید .برای نوشتن حرکات کافیست شمارهی میلهای که باالترین دیسک آن را خارج میکنید و شمارهی میلهای که این دیسک را روی آن می گذارید به ترتیب با یک فاصله بنویسید. مثال ورودی 3 0 213 12 مثال خروجی 5 23 21 32 31 21 توضیحات: – 1برنامه های خود را با نام diameter.cppو hanoi.cppبفرستید .برای کامپایل کردن برنامههای خود از کامپایلرهای استاندارد استفاده کنید. – 2 دادهها را از ورودی استاندارد بخوانید و در ورودی استاندارد بنویسید. – 3مهلت ارسال این تمرینات روزدو شنبه 23اردیبهشت ساعت 12ظهر میباشد.. – 4سعی میشود تا چند روز قبل از اتمام مهلت ارسال امکان online submit and judgeفراهم شود. – 5سواالت خود را در قسمت discussion areaدرس مطرح کنید.
© Copyright 2025 Paperzz