عندما يفوز هو ملف التعريف الخاص بك

مرحبا بالجميع! اسمي Lida ، وأجري مسابقات برمجة لمدة 12 عامًا. (مرحبا ، ليدا!) انضممت هذا العام إلى فريق فكونتاكتي وأشرف الآن على كأس VK. لمدة 5 مواسم كانت بطولة رياضية فقط. ولكن حان الوقت لإجراء تغييرات كبيرة.


أزلنا معظم القيود وألغينا تنسيق الزوج وأضفنا ثلاثة اتجاهات جديدة. VK Cup 2019 هي مسابقة عبر الإنترنت لمبرمجي olympiad ومطوري الأجهزة المحمولة والمصممين ومتخصصي التعلم الآلي مع نهائي ضخم في سان بطرسبرغ.


سأخبرك في هذه المقالة أننا توصلنا إلى مقال جديد ، وسيقدم زملائي توصيات للمشاركين. التسجيل في VK Cup مفتوح في vk.cc/cup حتى 4 ديسمبر - يتبقى أسبوع واحد فقط! جميع التفاصيل حول المسارات والمراحل هي تحت الخفض.



فكونتاكتي للأولمبياد


تعقد العديد من شركات تكنولوجيا المعلومات منافساتها - هذه طريقة للتحدث عن المهام المثيرة للاهتمام التي تواجهها. كان فريق فكونتاكتي واحدًا من أوائل اللاعبين في عام 2012 لتنظيم بطولاته الخاصة. قام المطورون أنفسهم بتأسيسهم - عمل الفائزون بمسابقات البرمجة الدولية دائمًا في VK. أربعة أبطال العالم في الفريق الآن.


المحركات التي ينشئها المطورون هي أساس فكونتاكتي. في هذه الفئة ، تكون الكفاءة مهمة بشكل خاص ، في كل مرة - كل مللي ثانية. كيفية تحقيق أقصى قدر من الأداء؟ تعرف بعمق الخوارزميات وهياكل البيانات ، وتناسب أيضًا حدود الذاكرة المحددة. إنها متطلبات عالية يتم فرضها على كود المشاركين في كأس VK.


منذ عام 2012 ، تغير التنسيق قليلاً ، لكن جوهره بقي كما هو: شارك المشاركون من عمر 14 إلى 23 عامًا في برامج أولمبياد ، بمفردهم أو في فرق من شخصين. إذا وصلت إلى النهائي مرتين ، فلن تتمكن من المشاركة مرة أخرى. حان الوقت للتغيير.


إلى أسفل مع القيود


سيعقد VK Cup 2019 في شكل فردي. نقوم بإزالة الشريط العلوي حسب العمر والحد الأقصى لعدد النهائيات - لذلك سيكون أفضل المشاركين في السنوات الماضية والمتخصصين ذوي الخبرة قادرين على العودة إلى البطولة. ولكن الأهم من ذلك - بالإضافة إلى البرمجة الرياضية ، سيكون من الممكن التنافس في التعلم الآلي وتطوير الهواتف المحمولة والتصميم. يمكنك المشاركة في العديد من المسارات في نفس الوقت - إذا كان هناك بالطبع وقت كافٍ.


سيتألف كل مسار من ثلاث جولات:


  1. سيتم إجراء التأهيل عبر الإنترنت من 6 إلى 16 ديسمبر وسيكون مفتوحًا للجميع. ستكون الجولة التالية هي أفضل 256 مشاركًا في كل مسار.
  2. سنجري أيضًا مرحلة التصفيات عبر الإنترنت - في فبراير 2020. هنا ، سيجد المشاركون مهام أكثر تعقيدًا ووقتًا أقصر. 40 مؤلفًا من أكثر القرارات نجاحًا في كل مسار سيذهب إلى النهائيات.
  3. سيقام النهائي في سان بطرسبرغ في أبريل 2020. في المواجهة بدوام كامل ، سيتنافس المشاركون على الجائزة الرئيسية لكل مسار - 524288 روبل (2 ^ 19).

محرك المسار


المؤهلات. سوف يحل المشاركون المشاكل على منصة Codeforces بأي لغة برمجة ملائمة. يمكنك حتى حل المشاكل بين يديك ، وتفكيك كل اختبار فردي.
مرحلة التصفيات. سيكون من المهم حل كل مشكلة في أسرع وقت ممكن من أجل تسجيل المزيد من النقاط والحصول على دعوة للنهائيات.
النهاية. سيتنافس المشاركون وفقًا لقواعد Codeforces القياسية: سيتمكنون من الحصول على نقاط إضافية إذا وجدوا أخطاء في قرارات المشاركين الآخرين.


نصائح من بوريس مينايف


بوريا هو بطل العالم في البرمجة ICPC 2015 ، المركز الثاني في كأس VK 2015 ، رئيس فريق قاعدة بيانات فكونتاكتي.


  • حل المشاكل من أجل زيادة التعقيد. اختيار واحد الذي اجتاز معظم المشاركين.
  • لا تذهب في دورات في مهمة إذا لم تستسلم لك. حدِّد نفسك فورًا: "إذا لم أتقدم في حل خلال 15 دقيقة ، فسننتقل إلى التالي."
  • اختبار الحل قبل الإرسال. تأكد من تشغيله على الحالات الحدودية. قبل ذلك ، أعد قراءة القسم مع قيود على بيانات الإدخال.
  • في بعض الأحيان يمكن اختراع فكرة الحل بناءً على القيود في الحالة. على سبيل المثال ، لديك مهمة تُعطى فيها كائنات n. إذا كانت n <10 ، إذن ربما في الحل ، من الضروري التكرار على كل التباديل للأجسام. إذا كانت n <20 ، فاكتب البحث المتكرر في 2 ^ n. إذا كانت n <1000 ، فابدأ البرمجة الديناميكية لـ n ^ 2. وإذا كان n حوالي مليون - على الأرجح ، فأنت بحاجة إلى التفكير في اتجاه حل خطي.
  • إذا تلقيت WA ، فأعد قراءة الرمز عدة مرات ، وما زلت لا ترى الخطأ ، ثم حاول كتابة حل أبسط. ثم قارن بين الاختبارات الصغيرة ما إذا كانت الحلول الأصلية والجديدة تعطي دائمًا نفس الإجابة. إذا كنت تقوم بحل مشكلة على شجرة غير مرجحة ، فقم فقط بتشغيل الحل مرة أخرى ، ولكن حدد جذرًا آخر.
  • استخدم بيئات التطوير مثل CLion أو IDEA. يمكنهم العثور على أخطاء قياسية مثل المتغيرات غير المهيأة أو أجزاء غير قابلة للوصول من التعليمات البرمجية.
  • إضافة المزيد من التأكيدات إلى التعليمات البرمجية الخاصة بك. العثور على سبب RE أسهل بكثير من WA.

تتبع موبايل


المؤهلات. سنختبر معرفة الخوارزميات البسيطة التي غالبًا ما تكون مطلوبة لتنفيذ الشاشات القياسية لتطبيقات الأجهزة المحمولة ، بالإضافة إلى المعرفة النظرية لمنصة المحمول الخاصة بنا. ستكون الجولة التالية 128 مشاركًا من كل منصة.
مرحلة التصفيات. سيكون من الضروري تحديد الأولويات بشكل صحيح. أيهما أفضل - أن تكون في الوقت المناسب قدر الإمكان أو أن تنجز كل مهمة بعناية قدر الإمكان؟ ستشمل النهائيات أفضل 20 مطورًا.
النهاية. سيتعين على كل مشارك إظهار مهاراته في المنتج: طرح وتنفيذ وتقديم مشروع جديد باستخدام الشاشات المطورة في الجولة السابقة فقط.


نصائح من أوليغ سميرنوف


يقود Oleg فريق Android Team VKontakte ويتألف من مهام لمسار تطوير الهواتف المحمولة VK Cup.


  • تأكد قبل بدء المسابقة من تهيئة IDE (Android Studio) ، وأن المكونات الإضافية اللازمة متصلة ، وأن المحاكي يعمل ، وهناك جهاز حقيقي للتطوير.
  • فهم نظام بناء Gradle وإعداداته.
  • اقرأ الشروط والأحكام واكتشف الحد الأدنى من SDK الذي ستحتاج إلى دعمه. لا تكتب رمزًا عالميًا لجميع المنصات ، قم بحل المشكلة وفقًا للشروط المحددة.
  • إذا لم تكن هناك حاجة ملحة ، فلا تستخدم NDK في المشروع. يمكن حل أي مهمة تقريبًا باستخدام SDK.
  • إيلاء الاهتمام لحقوق التطبيق. تحقق من أن جميع طلبات الأذونات مصنوعة.
  • تتبع أداء التطبيق: نظام الملفات ، والشبكات ، والرسوم المتحركة واجهة المستخدم على نحو سلس.
  • حدد الحد الأدنى لمجموعة المكتبات للعمل معها. استغل الوقت لحل المهمة ، وليس لدراسة المكتبات.
  • سيكون من المفيد إلقاء نظرة على عمل VK SDK.

تصميم المسار


المؤهلات. سوف نتأكد من أن المشاركين لا يمكنهم تطوير عناصر التصميم الفردية فقط ، ولكن أيضًا ملاحظة الأخطاء.
مرحلة التصفيات. نحن نقدم لتطوير واجهات من العناصر الفردية من فكونتاكتي أو خدمات مستقلة. سيكون من المهم إيجاد حل وسط بين حجم الفكرة وزمن التطوير.
النهاية. سيحتاج المشاركون إلى التحدث عن فكرتهم وتقديم التصميم.


نصائح من اليكسي Mazelyuk


ليشا هي أحد كبار مصممي VK والفائز بمسابقة VK Designers في عامي 2015 و 2017.


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

تتبع ML


المؤهلات. كإجابة ، ستحتاج إلى تنزيل البيانات التي تتم معالجتها ، وسيتم تقييم كل قرار باستخدام مقياس محدد مسبقًا. البيانات من المهمة يمكن معالجتها حاليا أو حتى يدويا.
مرحلة التصفيات. سيتم تحميل رمز النهج الذي سيطوره المشاركون على نظام الاختبار - سيتم اختبار جميع الحلول على نفس البنية التحتية ، في ظروف موارد الحوسبة المحدودة.
النهاية. سوف يحل المشاركون مهمة عملية صعبة.


نصائح من دانيلا سافينكوفا


دخلت دانيا المتسابقين مرسيدس الأعلى في kaggle. وهو أيضًا أحد كبار مبرمجي VK.


  • للتحقق من الصحة المحلية ، حاول إعادة إنتاج نفس مبدأ التقسيم الذي تم استخدامه عندما اختار منظمو الاختبار مجموعة الاختبار (انتبه إلى الوقت ، إن وجد ، وإلى المعرّف). إذا أمكن ، استخدم التحقق من الصحة. هذه الطريقة غير قادرة عملياً على تقييم أهمية التغييرات في المقياس . تأكد من إصلاح البذور عند كسر مجموعة البيانات.
  • تدريب ومتوسط ​​نماذج مختلفة. قد يعمل هذا بشكل أفضل من نموذج واحد - تذكر نظرية الحد المركزي. XGBoost مع sids مختلفة هي أيضا نماذج مختلفة (الشيء الرئيسي هو أن نتذكر أن تجعل المثال الفرعي <1 و / أو colsample <1). XGBoost و CatBoost و LightGBM هي أيضًا نماذج مختلفة في هذا السياق.
  • استخدام sklearn.Pipeline. عندما يتضمن model.fit خط الأنابيب بالكامل بدءًا من معالجة البيانات المسبقة وحتى الحصول على تنبؤات ، يصبح العيش أسهل كثيرًا وهناك فرصة أقل بكثير لخطأ في التحقق من الصحة المحلي.
  • إذا كنت تريد postekat - انتبه إلى cross_val_predict ، فستساعد هذه الوظيفة إلى حد كبير.
  • هل الميزات. التراص ، المزج ، إعداد المعلمات - يمكن لأي شخص تقريبًا القيام بذلك. الفائزون هم أولئك الذين توصلوا إلى أنجح الميزات. حسنا ، أو أولئك الذين وجدوا الوجه. أو أولئك الذين يحالفهم الحظ. وغالبا ما يعمل مزيج من هذه العوامل ؛)



إذا كانت لا تزال لديك أسئلة حول VK Cup ، فاكتب على الرسائل الخاصة لـ VK VK: vk.com/cup . هناك يمكنك العثور على القواعد ومراقبة تقدم البطولة.


أتمنى أن تستمتع بكأس VK الجديد وسنلتقي مع بعض القراء في النهائيات في سان بطرسبرج. حظا سعيدا للجميع!

Source: https://habr.com/ru/post/ar477792/


All Articles