Skip to main content

SRM 476

Энэ удаад манайх их олуулаа оржээ, магадгүй миний орж эхэлснээс хойш хамгийн олон монгол зэрэг орж байна.
Division 1: Khongor, Chamka
Division 2: naranbayar_mon, XaCaHaa, Khuyagbaatar, lmo0731, nursoltan_h, gmunkhbaatarmn, almabek

Easy бодлогоо өрөөнөөсөө хамгийн хурдан бодлоо (4 минут). Итгэл муутай байсан болохоор бараг 1 минут хянасан байх. Medium бодлогын өгүүлбэрээ буруу уншчихсан байналээ. 36 character гэдгийг 36 number гэж ойлгоод бодлогыг бодох боломжгүй болгочихсон юм байналэ :D. Challenge Phase дээр алдах л юм бол хэдэн зуун байр ухрах том аюултай байсан учир энэ удаад бараг алгаслаа. Easy минь даваад чансаа 81-р өсөөд 1821 буюу Maximum рейтингдээ хүрчихлээ. Ер нь easy маш хурдан хийгээд, medium яаж ийгээд бодоод байвал мөрөөдлийн өнгө рүүгээ дөхөх шинжтэй.

Div 1 Easy/Div 2 Medium: Greedy алгоритм яг зөв гэдэгт итгэлгүй байна. K амьтан авч чадах эсэхийг шийдье. Тэгвэл амьтан бүрийн өдөрт идэх хэмжээг нь олж болно. total(i)=hunger(i)+greed(i)*(k-1). Ингээд total-аараа хамгийн бага К ширхэг амьтны нийлбэр таны мөнгөнөөс хэтрэхгүй бол авч болно гэсэн үг. Хязгаарлалт жижиг байсан тул К дээр шугаман хайлт хийж болно, хэрэв том байсан бол 2тын хайлт хийж болно.

class Badgers{
public:
int feedMost(vector hunger, vector greed, int totalFood)
{
vector g=greed;
int n=g.size();
for (int i=n;i>=1;i--)
{
for (int j=0;j<n;j++)
g[j]=greed[j]*(i-1)+hunger[j];
sort(g.begin(),g.end());
int s=0;
for (int k=0;k<i;k++)
s+=g[k];
if (s<=totalFood) return i; } return 0; } };

Div 2 Easy: Ямар нэгэн нүдийг зүүн дээд булан руу зөөхөд шаардагдах хамгийн цөөн үйлдэл нь зүүн дээшээ, зүүн доошоо, баруун дээшээ, баруун доошоо дөрвийн минимум байх болно. Манай Div 2 хүмүүс жаахан удсан юм шиг байна.

class MatrixShiftings{
public:
int minimumShifts(vector matrix, int value){
int ret=1<<30; int n=matrix.size(),m=matrix[0].size(); for (int i=0;i<matrix.size();i++) for (int j=0;j<matrix[0].size();j++) if (matrix[i][j]-'0'==value){ ret<?=i+j; ret<?=n-i+j; ret<?=i+m-j; ret<?=n-i+m-j; } return ret==1<<30?-1:ret; } };


Div 2 Hard: Энгийн O(N^3) DP. Гэвч хугацаанд амжихын тулд жаахан юм хийх хэрэгтэй (Precomputation). Удахгүй source оруулна.

Comments

  1. Mongolian Coder gesen heseg yagaad ajillahaa bolitsiin???

    ReplyDelete

Post a Comment

Popular posts from this blog

SRM 477

Монгол улсаас энэ удаа хамгийн олон хүн буюу 11 хүн орлоо. Шинэ гишүүд тавтай морил. Division 1: Khongor Division 2: XaCaHaa , lmo0731 , naranbayar_mon , Khuyagbaatar , ChNbLd , gmunkhbaatarmn , gantushig , nursoltan_h , almabek , janchiv

Баяртай мэдээ

Блогоо их удаан хөтөлсөнгүй. Өөрийн нэгэн зорилгодоо хүрсэн учраас энэ баяраа хуваалцмаар байна.

Сонирхолтой бодлого

Манай компани HackerRank сүүлийн үед тэмцээн ихээр явуулж ирсэн. Үүнийг дагаад бодлого зохиох гэдэг хүнд асуудал байдаг. Дотроосоо болон гаднаас бодлого их авдаг, мэдээж тодорхой хэмжээний тест хийдэг ч гэсэн бодлого алдаатай байх тохиолдол нэлээдгүй гардаг.