Тэмцээнд оролцсон бүх оролцогч нартаа баяр хүргье.
Тусгайлан, эхний гурван байр болох Төрхүү, Бат-Эрдэнэ, Баттулга баяр хүргье. Энэ удаагийн тэмцээнд нийт 68 оролцогч бүртгүүлж 24 оролцогч бодолт илгээж оролцожээ.
Түрүүлсэн оролцогч Төрхүүгийн хувьд Дархан хот, Оюуны Ирээдүй Цогцолбор сургууль 12-р анги
2т орсон Бат-Эрдэнэ МУИС 1-р курсын оюутан,
3т орсон Баттулгын хувьд програмист залуу байх нь ээ.
Эхний тэмцээнээ ямарч байсан оролцогч нарыхаа түвшинг харах үүднээс хүнд бодлого тавилгүй явууллаа. Хурдаараа л үзэлцлээ гэсэн үг. Бодлогуудын өгүүлбэрт зарим нэг жижиг алдаа гаргасныг эс тооцвол амжилттай сайхан болж өнгөрлөө. Тэмцээнийг ивээн тэтгэсэн Гүүд Ти Си ХХК-н хамт олондоо баярлалаа.
Тэмцээн цаашдаа сар бүр болох болно. Бодлогуудыг би өөрөө бэлдэж оруулаад явна аа.
Жич: Бодлогын анализ, шагнал гардуулах уулзалт зохион байгуулах байсныгаа болиод онлайнаар бодлогын анализаа энд хийгээд байр эзэлсэн оролцогч нарын шагналыг дансаар шилжүүлэхээр боллоо. Учир нь, 1т оролцогч нараас уулзалтанд ирэх нь их хүндрэлтэй байх шиг байна, 2т ихэнх оролцогч нар 10-н жилийх байгаа тул зарим эцэг эх хүүхдээ орой, түгжрэлд явуулах боломжгүйгээ илэрхийлсэн. За тэгээд орчин үе, ихэнх зүйл зайнаас харьцдаг болж байгаагийх заавал цуглах гээд яахавдээ гэж үзлээ.
Бодлогын анализаа эхлэе
Шууд симулац хийгээд зураад хүрээгээ үүсгээд явчих бодлого. Бодолт
42т хуваахад гарч болох хамгийн том үлдэгдэл нь 41, хамгийн бага нь 0. Тэгэхээр 42 урттай бүүл массив аваад орж ирсэн тоог хуваагаад үлдэгдэлийг нь массивын индэкс болгоод тэмдэглээд явчихаж болно. Бодолт
Евклидын гёометрт тойргийн талбай pi * r * r.
Евклидын бус гёометрын тойрогийг евклидын гёометрт дүрсэлбэл квадрат болж дүрслэгдэнэ. Яагаад? Тэгэхээр квадратын диагоналийн урт өгөгдсөн бол талбайг олох бодлого болох нь ээ. Бодолт
Жингүй чиглэлгүй граф өгөгдөхөд аль нэг оройгоос түвшний нэвтрэлт хийхэд хүрч болох бүх орой хүртэлх хамгийн богино замууд олдоно. Вирус байгаа цэгүүдээс яг саяны хэлсэнчлэн түвшний нэвтрэлт хийж вирус хүрч болох өрөө бүрт хамгийн хурдандаа хэдэн минутанд очихыг нь олчихно.
Үүний дараа S оройгоос дахин нэг түвшний нэвтрэлт хийж D-д хэр хурдан очихыг нь олчихно. Ингэхдээ, түвшний нэвтрэлт хийх явцад, мэдээж дайран өнгөрөх өрөө бүрт вирусаас бага хугацаанд очих ёстой гэдэгээ шалгаад явчихна. Бодолт
Шууд хүчээр шалгахад хугацааны хязгаар хүрэхгүй байхаар бодож оруулсан бодлого. Даанч hackerrank-н сервер бодож байснаас хүчтэй байх шиг байна, O(N^4) бодолтууд давсан харагдана лээ.
Ер нь бол үндсэн бодолт O(N^4) зөв. Хугацаандаа багтааж зөв бодохын тулд хэд хэдэн сайжруулалт хийнэ.
Анзаарах ёстой зүйл, 180 эргүүлэхэд ижил байх матриц доторх бүх дэд матрицууд мөн 180 эргүүлэхэд ижил байх матрицууд байна. Гэхдээ эдгээр матрицууд бүгд 1 төвтэй байх ёстой шүү.
Эсрэгээрээ 180 эргүүлэхэд тэнцүү биш матриц байх юм бол энэ матрицыг агуулсан аль ч матриц 180 эргүүлэхэд тэнцүү байж чадахгүй.
Дээрх 2-г анзаараад кодоо цэвэрхэн бичвэл ер нь давчихна.
Дараагийн сайжруулалт бол аль нэг цэг, нүднээс 1, 1-ээр ихэсгэж квадрац матриц үүсгэж шалгах шалгалтыг сайжруулж болно. Санаа бол, аль нэг нүднээс матрицаа томруулахдаа 1, 1-ээр биш 64 бит тооны тоогоор масклаад шалгавал нүднүүдээ 1, 1-ээр биш 64 хэмжээтэй блокоор шалгах боломж гарна. Ийм төрлийн сайжруулалт бодлогуудад их тус болдог. Бодолтноос дэлгэрэнгүй хараарай.
За тэмцээнд оролцсон, санаа тависан мөн сонирхсон бүх хүмүүстээ баярлалаа.
Дараагийн тэмцээнийг facebook хуудсаараа зарлаад хийх болно оо. Бусдадаа түгээж, аль болох олуулаа оролцоод хөгжөөд явцгаая.