خب داریم سعی می کنیم پست گذاری رو سریع تر انجام بدیم که به درد همه شما بخوره سوالات این آزمون اینجاست
اگر آزمون رو ندادید حتما تو یه تایم 3 ساعته بدید
حل سوالات در ادامه مطلبه
1-خب سریع میریم سراغ سوال اول سابتسک الف که صرفا با پیاده سازی تابع های g و f حله برای بخش دوم باید تابع f بررسی شه خب با یه ذره بررسی میفهمیم که تابع f یه x و y میگیره و اگر تعداد بیت های 1 در مبنای 2 عدد a ، y باشه و تعداد 0 هاش b، این تابع رو برمیگردونه چون دلتا * دلتا کمتر از هه پس با یه فور حسابش میکنیم.
حالا بخش ج رو باید حل کرد دیگه اینجا نمیتونیم فور بزنیم و باید یه حرکت دیگه زد اینجا روی متغیر سیگمای دوم حالت بندی میکنیم که اگه j که چنتا بیت 1 داره و چنتا 0! بعد اگه aتا بیت 1 و bتا بیت 0 داشته باشه تعداد اعداد با این خاصیت هست و چون به ازای این اعداد هر کدوم باید داخل توان دو و سه یکی ضرب بشن مجموعشون رو پیدا میکنیم و در اون ضریب مشخص با توجه به b و a ضرب می کنیم
الف و ب :دریافت
ج :دریافت
2- این سوال اینطوریه که بزارید رک بگم 3اش غیرقابل حله تقریبا :\ ینی از قرار معلوم flowئه که دیگه در دستور کار ما نیست و صرفا الف و ب رو بررسی میکنیم ولی اگر کسی کد + راه حل رو به صورت دقیق داره برامون بفرسته خوشحال می شیم که منتشر کنیم تا همه استفاده کنن. الف که سوال نسبتا ساده ایه اینطور که با brute force رو همه حالات همه رو بررسی می کنید و جواب رو خروجی میدید بخش ب هم اینطوریه که باید حالت بندی کنید که تو هر سطر چنتا چه خونه های سیاه باشن که به ازای هر سطر میشه که در نهایت چون سطر آخر یکتا مشخص میشه میشه باز همه حالات رو چک میکنیم و میشه که کل حالات چک بشه و این سوال هم به پایان میرسه.
الف : دریافت
ب : دریافت
3- تو سوال 3 باید ذهن آدم بره سمت دی پی برای دی پی زدن اگه بتونید منطق رو پیدا کنید و حلش کنید تمومه اگر به ازای هر خونه [dp[i رو تعریف کنیم که ماکسیمم مقداری که این خونه میتونه بگیره این dp از 2تا خونه پایینی به صورت زیر آپدیت میشه (اگه خونه های پایینی اندیس های j و k داشته باشن):
حالا به ازای مقدارهای مختلف تو (O(n میشه این dp رو آپدیت کرد.
این راه برای بخش های الف و ج هست.
بحثی که هست برای بخش ب هست اونم اینه که چون که اعداد خونه ها خیلی بزرگن و برابر جدول خیام پاسکالن و باید مد بگیریم دیگه راه ما معنی نمیده و مینیمم گرفتنش خراب میشه توی بخش ب باید greedy عمل کنیم و اینطوری عمل میکنیم که اگر تعداد اعداد اون سطر فرد بود عدد وسط رو + یه عدد دلخواه از چپ یا راستیش برمیداریم اگر هم که تو سطری بودیم که تعدادش زوج بود دوتای وسط که برابرن رو بر میداریم دیگه به این ترتیب اوکی میشه.
الف : دریافت
ب : دریافت
ج : دریافت
**حواستون به mod باشه که متناسب با دلتای خودتون تغییرش بدید وگرنه جواب غلط میگیرید ;)