2011-12-29 11 views
6

यह व्यापक प्रश्न है, लेकिन विशेषज्ञों के विचार जानना चाहते हैं। मैं एक दस्तावेज़ में आया Suffix arrays – a contest approach, कुछ टिप्पणियां भी मिलीं कि प्रतिभागियों को पहले से ही इस तरह के डेटा संरचनाओं के साथ तैयार होना चाहिए। अब कई दिनों के ऑनलाइन प्रोग्रामिंग पहेली समयबद्ध के साथ आ रहे हैं। तो मैं जानना चाहता हूं कि अन्य डेटा-संरचनाओं/एल्गोरिदम के साथ क्या तैयार होना चाहिए।प्रोग्रामिंग प्रतियोगिता दृष्टिकोण

+0

शायद [codegolf.se] के लिए बेहतर फिट है? – mac

उत्तर

1

इन featured articles @ टॉपकोडर को देखें। वे वास्तव में शांत हैं।

जब आप इसमें हों, तो मैं टॉपकोडर में प्रोग्रामिंग प्रतियोगिताओं में भाग लेने का सुझाव देता हूं। क्योंकि सुधार करने का सबसे अच्छा तरीका & अभ्यास करना इस तरह की प्रतियोगिताओं में भाग लेना है।

भी Project Euler भी वास्तव में नशे की लत है।

0

इसके अलावा, Programming Challenges पुस्तक पर एक नज़र डालें, यह विषय पर एक महान संदर्भ है - यह प्रोग्रामिंग प्रतियोगिता में सफल होने के लिए जरूरी विषयों को प्रस्तुत करता है, जो online न्यायाधीश द्वारा समर्थित है।

11

मैं अब लगभग 10 वर्षों से प्रतिस्पर्धा कर रहा हूं और खुद को एक खराब पुस्तकालय बनाया है। वास्तव में बहुत से अच्छे प्रतिद्वंद्वियों के उदाहरण के लिए उनके ब्लॉग किंवदंती Petr Mitrichev हैं और वहां वे कुछ प्रतिस्पर्धी समस्याओं पर विचारों को समझाते हैं। इन्हें पढ़ना आपकी मदद कर सकता है - यदि आप इसे एक अच्छा विचार लागू करते हैं और इसे संग्रहीत करते हैं। मैं अपनी लाइब्रेरी में एल्गोरिदम जोड़ता हूं जब मुझे कोई समस्या दिखाई देती है जिसमें उन्हें शामिल किया जाता है। इस तरह से मैं यह सत्यापित कर सकता हूं कि मेरा कार्यान्वयन सही है- अगर मैं इसके क्रियान्वयन के साथ कम से कम एक समस्या पारित करता हूं तो मैं केवल एक एल्गोरिदम जोड़ता हूं।,

  • मैं (उदाहरण के चौराहे के लिए बिंदु, रेखाओं, बहुभुज, क्षेत्रों, हलकों का प्रतिनिधित्व वर्गों और उनके साथ कुछ कार्यों के साथ एक विशाल geometrial पुस्तकालय है:

    यहाँ एल्गोरिदम मेरे पास से कुछ के साथ एक सूची है अंक आदि)

  • Tarjan के algorithm प्रभावशाली तरीके से कनेक्ट घटकों
  • के लिए
  • Dinitz प्रवाह एल्गोरिथ्म
  • द्विपक्षीय मिलान कार्यान्वयन
  • के सेट के उत्तल पतवार
  • मिन अधिकतम प्रवाह कार्यान्वयन की लागत
  • Aho-Corasic स्ट्रिंग खोज एल्गोरिथ्म
  • Knuth-morris-pratt स्ट्रिंग खोज एल्गोरिथ्म
  • Rabin-Karp स्ट्रिंग खोज एल्गोरिथ्म
  • रैखिक समय ukonnen के algorithm
  • फास्ट घातांक का उपयोग कर प्रत्यय पेड़
  • polynom कार्यान्वयन
  • बिग इंटीजर कार्यान्वयन
  • भिन्नात्मक संख्या कार्यान्वयन
  • मैट्रिक्स वर्ग कार्यान्वयन
  • प्रधानमंत्री गुणन
  • Eratosthenes Sieve
  • Segment Tree
  • Hungarian algorithm
  • 2-Sat एल्गोरिथ्म। इसके लिए मैं उपरोक्त वर्णित तारजन के एल्गोरिदम का उपयोग करता हूं।

आप देखेंगे कि सबसे बुनियादी एल्गोरिदम के कुछ (BFS, डीएफएस, डिज्कस्ट्रा) की तरह ऊपर उल्लेख नहीं कर रहे हैं और वह यह है कि क्योंकि मैं उन्हें लागू किया है नहीं है। इन एल्गोरिदम को आसानी से इस तरह से सामान्यीकृत नहीं किया जा सकता है कि आप उन्हें कॉपी और पेस्ट करेंगे और सबकुछ काम करेगा। इसके अलावा मुझे उन्हें लिखने में 5 मिनट लगते हैं - मैं आमतौर पर केवल अपनी लाइब्रेरी में डालता हूं जो केवल लागू करने के लिए कठिन होता है या उन्हें कार्यान्वित करते समय त्रुटि करना आसान होता है।

संबंधित मुद्दे