Technical

ACM Contest Tips

السلام عليكم ورحمة الله وبركاته

دي شوية Tips for ACM contest قعدت جمعتها وقسمتها لتلات محاور

1- قبل المسابقة

2- خلال المسابقة

3- بعد المسابقة

قبل المسابقة

1- تظبيط النية. والنية هي الحاجة اللي بتفرق بين المسلم وغيره. فالمفروض تبقى ناوي كده شوية نوايا لله وطبعا أهمها

a. بر الوالدين: إنك تحاول تجيب مركز كويس وتفرحهم بيك وتدخل الفرحه عليهم

2- إدعي ربنا كتيير إنه يوفقك في المسابقة

3- نام على الأقل ست أو سبع ساعات عشان فعلا الراحة بتفرق جدا خلال الكونتست خصوصا في آخر ساعتين.

4- المفروض التيم يتدرب كويس جدا على الـ Team work عشان فعلا التجانس بين أفراد التيم حاجة مؤثرة جدا.

5- تجهيز Library/Reference فيها كل الأكواد اللي ممكن تحتاجها في الكونتست ومش محتاج تقعد تفكر فيها جوا الكونتست. ويا ريت تبقى الـ Library دي فيها Table of contents في الأول عشان لما بتكبر بيبقى صعب توصل للكود اللي انت عايزه بسهولة.

6- دخول Individual contests كتير هدفها

a. تحديد المستوى وإن كل واحد يعرف هو إيه ال category اللي مقصر فيها ومحتاج يتدرب عليها أكتر.

b. إن الواحد يشوف نفس المسأله أصحابه حلوها إزاي ويعملو analysis عشان يشوفو أني حل أحسن.

7- دخول Teams contests هدفها:

a. التدريب على Team work وإن التيم يبقو فاهمين بعض كويس

b. وضع Strategy للتيم: يعني مثلا هنعمل إيه لو

i. فاضل ساعتين ومعانا خمسه WA

ii. فات ساعة ولسه محلناش ولا مسألة

iii. الجهاز اللي قاعدين عليه باظ في نص الكونتست

iv. ـBlablablaـ

v. كل ديه حالات لازم يبقى التيم عارف لما يتحط فيها هيبقى إيه رد الفعل وإيه أحسن حاجه يعملها في الحاله دي:

c. التدريب على الحل على جهاز واحد وسرعة الحل.

d. التدريب على كتابة الكود على الورق. وكتابة الكود مش معناها PsuduCode لأ, معناها Real Code بحيث لما تكتبه يشتغل.

8- يبقى أهم نقطة قبل المسابقة وهي: إنك تبقى واثق من نفسك ومن التيم كله وإن احنا مش رايحين نجرب حظنا, لأ احنا رايحين نكسب إن شاء الله. فعلا دي نقطة مهمة جدا جدا جدا إنك تبقى داخل الكونتست منتصر نفسيا.

خلال المسابقة

1- أول ما الكونتست تبدأ قسموا المسائل بسرعة وكل واحد يبدأ يقرا المسائل اللي معاه وكل هدفه وهو بيقرا إنه يعرف ال Category بتاعت المسألة ويكتب بقلم رصاص عليها ويسيبها ويقرا اللي بعدها إلا لو هي ACE وسهلة جدا يروح يحلها ويبقى يكمل قراية بعد أما يحلها. وبعد كده كل واحد يرتب المسائل اللي معاه على حسب الصعوبة. ويكتب الكود بتاعها على ورق الأول ومش PsuduCode زي ما قلنا. لأ, كود بجد. ولو كتبه وعمله Trace ومتأكد إنه صح, يروح يكتبه على الجهاز ويبقى قدامه من 20 لـ 25 دقيقه يكون جايب الـ Sample لو معرفش في 25 دقيقة. يبعت للـ Judges ويطبع الكود ويقعد يعمله Debug على الورق. ولو معرفش خلال كمان 20 دقيقة يسيب المسأله فورا للـ Freeze hour

2- حاولو تنفذو خطة 1-3-1 ودي معناها إنك تقسم الكونتست:

a. أول ساعه Hunting for aces: تحاولو تحلو أي مسألة سهلة بسرعة جدا ولازم يبقى فيه على الأقل مسألة سهلة جدا تتحل على طول.

b. تلات ساعات؛ محاولة حل بقيت المسائل من الأسهل للأصعب زي ما قلنا.

c. آخر ساعه Freeze hour: دي مفيهاش أي أي مسائل جديدة, مهمة الساعة دي إنك تعمل Debug لأي مسأله حلتوها ولسه مش AC.

3- نظموا الورق اللي في إيديكو كويس جدا: الورق الأبيض في ناحية والمسائل في ناحية تانية. المسائل الـ AC في ناحية واللي لسه في ناحية تانية. فعلا تنظيم الورق ده مهم جدا إحنا في ال WarmUp اللي فاتت في مسأله ضاعت مننا وخدناها من اللي جمبنا :D:D

4- ركزو أوي على الـ Scoreboard شوفوا إيه المسائل اللي اتحلت وانتو لسه محلتوهاش. شوفو مثلا المسائل اللي الناس بتجيب فيها WA كتير وحاولو تفكرو في Critical test cases ليها قبل ما تبعتوها.

5- لو حد جاب WA إوعو حد يزعل ولا يبين إنه زعلان هو مش أول وآخر واحد يجيب WA في الكونتست 😀

6- محدش يلوم حد جوه الكونتست خاااااااالص. مش وقته خالص كله بعد الكونتست.

7- إكتبو Clean Code عشان لما حد من إصحابك ييجي يعمل معاك Debug في الكود ما يقلكش يعني إيه:

a. ـTempـ

b. ـZZـ

c. ويا سالام بقى على الناس اللي بتستخدم حرف واحد , k l y p h d

8- في مسائل كتير بتبقى سهله جدا جدا بس ال Description بتاعها طويييييييييييل وممكن تلاقي كلمات صعبة ورخمة في النص. وهدف الـ Problem setter إنها تكون خادعة. فياريت محدش يخاف لو لقى مسألة طويلة قوي وفيها رسومات وحاجات 😀

9- حلّو لحد آخر ثانية ومحدش يقول كفاية” لو حليتو كتير. وبردو محدش يقول “مش هنلحق” لو حليتو عدد قليل. في سنة من السنين في الـ Regional تيم جامعة القاهرة كانو حالين مسألتين بس لحد الـ Freeze hour وفي الـ Freeze hour حلو أربع مسائل وتقريا كانو الرابع ساعتها بس هما مقالوش كفاية” وحلو المسألة السابعة وبعتوها في آخر دقيقه وجابت AC وبقو الأول على الكونتست. مش محتاج أعلق كتير الصراحة 😀

10- حاولو تركزو أوي على الـ First submission وعشان تعملو كده ركزو فى الآتي:

a. إتأكدو إنكو فهمتو المسألة كويس أوي وإن مفيش سطر مش مفهوم.

b. ركزو جدا في الـ Input Limit وده بيفرق طبعا في الطريقة اللي المفروض تحل بيها.

c. استخدموا الـ Data types المناسبة int, long long, double, long double….

d. قبل ما تبعتو إتأكدو من ال Boundry cases مثلا قالك 0 < N <= 1000 جربو ال 1 والـ 1000

e. إوعو تنسو سطر ال freopen()

f. لو جالكو CE والكود شغال صح على ال Visual Studio تجربوه على ال Eclipse وتشوفو المشكله عشان ال Visual Studio فيه حاجات مش Standard. أو اشتغلو من الأول على Eclipse وخلاص.

11- آخر حاجة وأهم حاجة: لو انت نيتك لله متخليش الكونتست تأخرك عن الصلاة.

بعد الكونتست

1. إفرح وقول مبروك للتيم بتاعك والتيمز التانية واضحك مع الناس وافتكر دايما إن كل ده بيتنسي وتبقى الزكريات الجميلة . Have Fun !!!

2. قول الحمد لله على كل حال. وفي حالة إنكو عملتو مركز عالي إوعى تقول “أنا” وفي حالة إنكو لخبطو في الكونتست إوعى تقول “هما”. “عييييب” انتو Team واحد.

3. إعملو Analysis بعد الكونتست الهدف منه تَجَنُّب الأخطاء اللي وقعتو فيها في نص الكونتست.

طولت عليكو معلش 😀

شكرا لـ:

حسين هشام

عبد الرحمن زكريا

مجدي مدحت

خالد أحمد

– محمود عبد الرحمن

Advertisements

16 thoughts on “ACM Contest Tips

  1. جزاك الله خيرا الكلام حلو اوي ومهم اوي
    وكمان قبل المسابقة نصيحة لاي حد
    مهما كانت الظروف يخلي ثقته في ربنا وف نفسه عالية
    لان من غيرهم بجد هيتبهدل …….

  2. نصائح جميلة جدا يا عمور.
    وفعلا الواحد لما بيبقى داخل الكنتست وعارف إن لو حصل معاه موقف معين علطول يعمل كذا من غير يفكر كتير بتبقى أحسن جدا من إن الواحد يضيع وقت في اتخاذ قرارات مصيرية ممكن تأثر تأثير كبير على الأداء في الكنتست نتيجة للسربعة والشد العصبي اللي الواحد بيبقى فيه وقت الكنتست.
    كمان بتخلي تركيز الواحد يبقى على المسائل اللي معاه, فـميبقاش شايل هام حاجة غير إنه يحل كويس وبس.

    جزاك الله خيرا على المجهود ده وانشاء الله ربنا يكلل مجهودنا وتعبنا بالنجاح والتفوق.

  3. شكرا جدا يا عمرو علي النصائح ديه و جزاك الل هخيرا بجد
    انا حولت انفذ بعض النصايح اللي انت قولتها هوا طبعا مش ممكن تتنفذ كلها مرة واحدة بس فعلا حتي تنفيذ بعضها فرق كتير في المسابقة وربنا يخليك يا عمرو ويوفقك في الناشونال وترفع راس كليتنا ان شاء الله

  4. عموووور يا جامد, فعلاً مفيدة جداً
    لدرجة إني نفسي أرجع الكلية وأدخل مسابقة علشان أطبق النصائح إللي قلت عليها.
    في انتظار حاجة تانية جامدة.

    KEEP MOVING FORWARD

  5. جميل جدا فعلا
    ونصايح ممتازة 🙂
    بالرغم مش دخلت المسابقة غير مرة واحدة بس معاك حق جداااااا

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s