सीपी ह्यान्डबुक सबै प्रतिस्पर्धी प्रोग्रामिंग प्रेमीहरूको लागि एक ठाउँ हो किनकि यसले सबै एल्गोरिदमहरू र डाटा संरचनाहरू समावेश गर्दछ। साथै प्रत्येक बिषयमा अभ्यासका लागि उदाहरण र समाधान नगरिएका समस्याहरू छन्।
प्रतिस्पर्धी प्रोग्रामिंग एक खेल हो, मेरो शाब्दिक अर्थ हो। कुनै पनि खेल लिनुहोस्, यस कुराको लागि क्रिकेटलाई विचार गरौं, तपाईं पहिलो पटक ब्याटि .मा हिड्नुहोस्। स्विing र मिस, यो दुई पटक गर्नुहोस् र तपाईं अन्ततः डोरी माथि एक हिट हुनेछ। अब, प्रोग्रामिंग प्रतियोगितालाई क्रिकेटको खेलको रूपमा लिनुहोस्, रूपात्मक रूपमा। कोड कम्पाईल गर्नुहोस् र सबमिट गर्नुहोस्, तपाईंले WA (गलत उत्तर) प्राप्त गर्न सक्नुहुनेछ।
कोडमा परिवर्तन गर्नुहोस् र अन्तत: तपाईले तपाईको पहिलो एसी (स्वीकृत / सहि उत्तर) पाउनुहुनेछ। मलाई तपाईं एक लुक्ने झलक दिनुहुन्छ, प्रोग्रामिंग प्रतियोगितामा लगभग २०% प्रश्नहरू तपाईंको मनपर्ने प्रोग्रामिंग भाषाको कोडमा सादा अंग्रेजीको साधारण रूपान्तरण हो।
यसमा सिधा हिंड्नुहोस्, तपाईं खेलको अलिखित नियमहरू सिक्नुहुनेछ किनकि तपाईं कडासँग खेल्नुहुन्छ र राम्रो हुनुहुनेछ।
र विश्वास गर्नुहोस्, तपाईलाई कुनै पनि "फेन्सी नाम" एल्गोरिथ्म वा डेटा-संरचना सुरू गर्न थाहा छैन। कहिल्यै "वाफ्ट शट" को बारेमा सुन्नुभयो, तर तपाईं आफ्नो सडकमा सबै भन्दा राम्रो ब्याट्सम्यान हुनुहुन्छ, हैन?
ठीक छ, प्रोग्रामिंग समस्याहरूको पहिलो २०% लाई बाहिर पार गरौं।
तपाईंले जान्नु आवश्यक छ:
कुनै पनि एक प्रोग्रामिंग भाषामा मध्यवर्ती होल्ड गर्नुहोस्
अंग्रेजी! अंग्रेजीमा कोडमा रूपान्तरण गर्नुहोस्!
यस स्तरको उदाहरण समस्या लिनुहोस्: भयानक चन्दु
तपाईले गर्नु पर्ने कुरा भनेको STDIN बाट इनपुट लाइन पढ्नुहोस् र त्यो लाइनको उल्टो STDOUT मा प्रिन्ट गर्नुहोस्। अगाडि जानुहोस्, सबमिशन गर्नुहोस्। तपाईंको पहिलो एसी खोज्नुहोस्। थप चाहनुहुन्छ? हामीले हाम्रो अभ्यास सेक्सनमा भार पाएका छौं। हजारौं सही प्रस्तुतीकरणहरू सहितको लागि हेर्नुहोस्।
ठीक छ, अब तपाईं केहि चुनौतीको सामना गर्न तयार हुनुहुन्छ। कडा होल्ड गर्नुहोस्, हामी गहिरो डाइभिंग गर्दैछौं।
तपाईंले जान्नु आवश्यक छ:
१. एल्गोरिदम क्रमबद्ध गर्नुहोस् र खोज्नुहोस्
२ ह्याशिंग
Number. संख्या सिद्धान्त
G. लोभी टेकनीक
अझ महत्त्वपूर्ण कुरा, तपाईंले कुन, कहिले र कहाँ लागू गर्ने भनेर पत्ता लगाउनु पर्छ। यो वास्तवमै गाह्रो हुन्छ र त्यसैले शुरुवातकर्ताहरूलाई विश्वासको भावना प्राप्त गर्न मद्दतको लागि हामी कोड मोनकको रूपमा प्रतियोगिताको एक श्रृंखला चलाउँछौं। प्रत्येक प्रतियोगिता अघि, हामी केहि शीर्षकमा ट्यूटोरियल रिलिज गर्छौं र पछि प्रतियोगितामा समस्याहरू केवल त्यो विशेष शीर्षकमा गरिन्छ। म तपाईंलाई सल्लाह दिन्छु कि पाठ्य सामग्रीहरू मार्फत जान्नुहोस् र प्रत्येक शीर्षकमा दुई वा दुई प्रश्नहरूको समाधान गर्नुहोस्।
अहिले तपाईले बुझ्नु भएको छ कि हाम्रो सोच्ने तरिकालाई धोका दिनका लागि प्रश्नहरू बनाइएको छ। कहिलेकाँही, यदि तपाईं सादा अंग्रेजी कोडमा रूपान्तरण गर्नुभयो भने, तपाईं TLE (समय सीमा नाघेको) निर्णयको साथ समाप्त हुनुहुनेछ। समय सीमासँग सामना गर्न तपाईंले नयाँ प्रविधि र एल्गोरिदमहरूको सेट सिक्नु पर्छ। केहि केसहरूमा, डाईनामिक प्रोग्रामिंग (DP) बचाउन आउँदछ। वास्तवमा तपाईले पहिले नै सहज ज्ञानका साथ यस प्राविधिक प्रयोग गर्नु भएको हुन सक्छ। कुनै पनि प्रतियोगितामा सँधै कम्तिमा एउटा प्रश्न हुन्छ जुन DP द्वारा समाधान गर्न सकिन्छ।
साथै, तपाईंले याद गर्नुहुनेछ कि त्यहाँ त्यस्ता प्रश्नहरू छन् जुन केवल रेखीय एरे डाटा संरचनाहरू द्वारा हल गर्न सकिदैन।
१. ग्राफ थियरी
२. Disjoint Set Union (Union-Find)
Min. न्यूनतम स्प्यान रूख
डाटा संरचनाहरूको यी सेटले तपाईंलाई पर्याप्त पर्याप्त पाउनेछ। यसका अतिरिक्त, तपाईंले अनुमान लगाउनुहुनेछ कि वास्तविक कला भनेको तपाईंले प्रश्नहरू समाधान गर्ने क्रममा आफूले जान्ने तकनीकहरू परिमार्जन गर्नु हो। सबै सजिलो-मध्यम र मध्यम स्तरका प्रश्नहरू यस फेसनमा समाधान गर्न सकिन्छ।
तपाईं छोटो प्रोग्रामिंग चुनौतीहरूका लिडरबोर्डहरू शीर्षमा सेट हुनुहुन्छ, केवल स्थिर दृढता राख्नुहोस्। मैले पहिले नै उल्लेख गरिसकें, यो एक खेल हो, तपाईले यो मास्टर गर्नुहुन्न जब सम्म तपाईं वास्तवमा यो गर्नुहुन्न। अगाडि जानुहोस्, छोटो प्रतियोगितामा भाग लिनुहोस्, तपाईंको शक्तिहरू, कमजोरीहरू बुझ्नुहोस् र हेर्नुहोस् जब तपाईं एड्रेनालाईन मोड कसरी ह्यान्डल गर्नुहुन्छ जब घडी जाँच गर्दैछ।
सम्भव भएसम्म तपाईको आफ्नै तर्कमा अडिग रहनुहोस्, तपाई अन्ततः प्रश्नको समाधान गर्न आवश्यक एल्गोरिथ्म जस्तो केहि चीज आउँनुहुनेछ। तपाईंले भर्खरै यसलाई ब्रश गर्नु पर्छ। यी मध्ये धेरै प्रविधिहरूले तपाईंलाई वरपरका समस्याहरूमध्ये केहि कठिन समाधान गर्न मद्दत गर्दछ।
१ खण्ड रूख
२. स्ट्रिंग एल्गोरिदम
T. प्रयासहरू, प्रत्यय रूख, प्रत्यय एर्रे।
Avy. भारी प्रकाश अपघटन
Gra. ग्राफ रंग, नेटवर्क प्रवाह
S. वर्गमीटर विघटन।
त्यसैले यो सीपी ह्यान्डबुक डाउनलोड गर्नुहोस् र नयाँ चीजहरू सिक्नको लागि रमाईलो गर्नुहोस् पनि कम समय जटिलताका साथ तिनीहरूलाई कोड गर्न नबिर्सनुहोस्।
मा अपडेट गरिएको
२०२१ मार्च २१