1- حل مسائل أفكارها متقدمة أكثر على الـ Preprocessing Techniques التي تعلمناها في مستوى الناشئين.
2- التعرف إلى مفهوم Struct ومراجعة على Pair وVecto.
3- تعلم كيفية كتابة Compare function خاصة، وكيف يمكن إعادة تعريف operator معين مثل less than operator.
هنتعلم ايه جديد؟
- اتعلمنا قبل كدا اتنين من أهم الـ Preprocessing Techniques وهما Frequency Array وCumulative Sum وشوفنا عليهم مسائل بسيطة ومباشرة.
- عرفنا قبل كدا إن الـ Preprocessing Techniques بتساعدنا نحسن الـ Complexity بتاعت الحل عن طريق إنها بتسرع إجابة بعض الـ Queries زي Counting Queries أو Range Sum/Update Queries.
- عرفنا برضو إن الـ Preprocessing Techniques في الغالب مش بتكون كافية في حد ذاتها لحل المسألة، ولكن بتكون جزء من الحل بيخليه More Efficient.
- الهدف الأساسي من الأسبوع دا إنك تتعرض لمسائل أكثر تعقيدا تتعلم منها توظف الـ Preprocessing Techniques كجزء من الحل، عشان مستقبلا دا لازم يبقى جزء أساسي من تفكيرك وتركز في حاجات متقدمة أكتر.
Revision on Frequency Array:
ملاحظات هامة لمبرمجي C++ (بعد مشاهدة الفيديوهات):
- أكبر حد للـ array size في الـ C++ بيختلف حسب مكان الـ Declaration.
- لو عايزين نحجز array بـ size كبير بنعرفها global (قبل الـ main) ومسموح لينا نوصل لـ 100000000 (1e8) في معظم المسائل.
- لما بنعرف أي متغير global بياخد initial value حسب نوع المتغير، مثلا لو عرفت global array of integers كل العناصر هتكون بصفر مبدئيا ومش محتاج أصفرها.
سؤال للتفكير (بعد مشاهدة الفيديوهات وحل المسائل):
- لو عندنا مليون رقم والأرقام كبيرة جدا في رينج 10 أس 12 مثلا، ازاي نقدر نعمل Frequency Array تستوعب الأرقام دي؟ (احسب الـ Memory المطلوبة وشوف هل دا ممكن ولا مستحيل).
- هنتعلم Struct وازاي ممكن نعرف Data Type خاص بينا، ولو أنت مريت قبل كدا بمفهوم الـ Classes فالـ Struct هو نفس المفهوم مع فرق واحد بسيط.
- هنتعلم الأسبوع دا برضو ازاي نكتب Compare function ودي من أهم الحاجات اللي لازم تكون عارفها، مش دايما لما نعمل sort مثلا هنكون عايزين نرتب الأرقام من الصغير للكبير أو من الكبير للصغير، ومش شرط البيانات اللي بنرتبها تكون مجرد أرقام ممكن تكون مركبة، وممكن يكون عندنا معيار معقد أكتر محتاجين نكتب بنفسنا المعيار دا ونمرره للـ sort function عشان ترتب بناء على المعيار دا وتتجاهل المعيار الأساسي، والـ compare function مش شرط نستعملها مع sort بس وهنتعرض للكلام دا مستقبلا.
Tutorials on Struct, Pair, Vector and Compare Function: