Association for Computing Machinery NIT Surat Student Chapter
ACM NIT Surat's Blog

Geek Quest

A platform to share interesting development ideas and examples.
Tutorials and interesting tech news would also be uploaded through this blog

Top Image

Competitive Programming

Written by: Kruti

Competitive programming is a mind sport usually held over the Internet or a local network, involving participants trying to program according to provided specifications. Contestants are referred to as sport programmers. Competitive Programming mainly focuses on our ability to find efficient solutions to well-defined problems.
 
Usually, a question arises - Why Competitive Programming?
 
Many of the top tech companies like Google, Facebook hire people through a test which includes competitive programming. Also, participation in the ACM International Collegiate Programming Contest (ACM-ICPC) is a great opportunity to be seen by Apple, Facebook, Google, IBM and many other authorities in the IT sphere. These major companies are constantly keeping track of the participants to find talented employees.
 
Having experience in competitive programming shows employers you can work in a team, solve complicated problems, work in stressful situations, manage time and deadlines and minimize errors. It also shows you are a disciplined, focused and fast, which are all indispensable skills.
 
It is also useful in College Intern/Placement test, which includes a few questions on Basic Data Structures and Algorithms
 
If you are interested in Competitive Programming and confused about how to start and how to proceed, you can have a look here.

Prerequisites

    1. Be very comfortable with any one of the programming languages (preferably C, CPP, Java or Python). However CPP is more preferred for competitive programming due to its faster execution time and many inbuilt data structures.

     2. Understand the concept of Algorithmic Complexity and study Bit Manipulation Techniques.

How to begin??

    Register on some programming websites like HackerEarth, HackerRank, Codeforces, SPOJ, TopCoder etc.., start with basic programming questions to get a hang of competitive programming environment and then proceed to various data structures and algorithms.
 
 
Competitive programming is basically divided into three main categories:
 

1. Data Structures

2. Algorithms

3. Mathematics

Basic Data Structures:

1. Arrays
6. Hash tables
2. Stacks
7. Heaps
3. Queue
8. Priority Queue
4. Linked Lists
9. Graphs
5. Trees
10. Disjoint Data Structure

Resources:

      1. GeeksforGeeks-DS - Basic Data Structures Implementation

      2. HackerEarth-Tutorials

      3. STL - C++ Standard Template Library

 

Basic Algorithms:

1. Searching
5. Divide and Conquer
2. Sorting Algorithms
6. Backtracking
3. Greedy Algorithms
7. Dynamic Programming
4.Graph Algorithms (DFS,BFS,Dijkstra)
 

Resources:

    1. GeeksforGeeks-Algo -  Basic Algorithms Implementation

    2. HackerEarth-Tutorials

 

Basic Mathematics:

1. Modular Arithmetic
5. Sieve of Eratosthenes
2. Modular Exponentiation
6. Extended Euclidean Algorithm
3. Modular Multiplicative Inverse
7. Prime factorisation in O(sqrt(N))
4. GCD/LCM in O(LogN)
8.Bases

Resources:

   1. TopCoder-Mathematics - Basic Math for CP

   2. GeeksforGeeks-NumberTheory

   3. Primes and Euler function - Topcoder

   4. Basics of Combinatorics-Topcoder

Practice Websites

   1. SPOJ - It contains standard questions for all topics

   2. A2OJ - Choose a ladder and practice

   3. Codeforces

   4. Topcoder

   5. HackerRank

   6. Codechef

   7. HackerEarth

 

Apart from these, Codeforces conducts frequent contests, HackerEarth conducts 3 monthly contests namely Easy, HourStorm and Circuits and Codechef also conducts 3 monthly challenges namely Long, Cook-Off and Lunchtime. Try competing in those contests and upsolve the unsolved problems at the end of contest.

The resources listed below contains books, courses, blogs for all the advanced algorithms, data structures and math concepts.

   1. Awesome list for CP - Codeforces

   2. Codeforces Blog - II

   3. Topcoder CP Tutorials

   4. DS and Algo - Codechef

 

Some Common Advanced Data Structure and Algorithms include

1. Segment Tree
11. DP + Bitmasks
2. Binary Indexed Tree
12. Strongly Connected  Components
3. Sparse Table
13. Bipartite matching
4. Trie
14. Network flow
5. Suffix Arrays
15. Combinatorics
6. Suffix Trees
16. Line Intersection
7. Treap
17. Convex Hull
8. String Algorithms
18. Geometry
9. Heavy-light decomposition
19. Inclusion- Exclusion Principle
10. MO’s Algorithm
20. FFT

Super Full HD Filmler

Kahretsin! Bu gece işler pek umduğumuz gibi gitmedi. Savaştık ama kazanamadım. Artık belli olmuştu, buraya kadardı. Elime fırsat geçmişti. Ama yeterince iyi değildim. Evet, bayağı kötü. Artık Şafak Duvarı'nı neredeyse tırmanmış kişi olacaktım. Bu süreçten ne kadar zevk almıştım? Çünkü elimdeki tek şey bu olacaktı. Editörlerle film izle konuşmaya başladık. Başaramazsa bundan sonra ne olacağı konusunda mı haber yapacaktık? Mutlu sonları hepimiz severiz, ama gazeteci gözüyle "Bu da çok iyi bir haber." Tırmanışta beklenti ne? Bensiz devam et, der misiniz? Arkadaşınızı bırakıp gider misiniz? Geceleri duvar yatağında bunları konuşuyorlar mı? DUVARDA GÜN Radarı kontrol etsek iyi olurdu. Ertesi gün, hava kötüleşmeye bedava film izle başladı. Ne yapmam gerektiğini biliyordum. Bugün mü? Önümüzdeki gün boyunca. Kendim pes edip zirveye kadar Tommy'ye destek olacaktım. Bundan sonrasında Kevin sadece Tommy'yi tutacak ve halatla tırmanacaktı.

superfullhdfilm

Tommy'nin ulaştığı en yüksek noktaya gittiler. Tommy, Şarap Kulesi'ne giden uzun yoldaki son zorlu aşamaları tırmanmaya başladı AŞAMA Orada durmuş büyük bir öz güvenle Tommy'nin hayaline doğru tırmanmasını seyrediyordum. Kendim yapamasam bile, Tommy adına çok seviniyordum. Tarihin yazılışına tanıklık etmek çok özel bir andı. Hem de Tommy'nin hayalini gerçekleştirmesine yardım ediyordum. Yaşadığı onca şeyden verdiği onca mücadeleden yaralanmadan, şüpheden sonra Tommy için artık vakit gelmişti. Hadi, Tommy. Güzel bir his. Tommy'nin Şarap Kulesi'ne varmaya çalışmasını çayırdan izliyorum. Önlerindeki bir full hd film izle sonraki engelle karşı karşıyaydı. Bu, El Capitan'ın yaklaşık üçte ikilik yüksekliğinde yer alan efsanevi bir simge metre yükseklikte, duvarın üzerinde bir metrelik bir düz alan. Rotanın üzerinde ayakta durabileceğiniz, oturabileceğiniz, yatabileceğiniz tek yatay yüzey. Tırmanışın türkçe dublaj filmler en zor kısmının geride kaldığını gösteriyor. Şarap Kulesi'ne varmak için tek bir zor aşama kaldı. İnanılmaz! Yıllarca, tek parça film izle Şarap Kulesi'ne varış anımı gözümde canlandırmıştım. Çok heyecanlıyım. an . AŞAMA Güzel, Tommy. Devam et. an . AŞAMA Çok gergin bir şekilde tırmanıyorum, heyecandan titriyorum. Nefes almaya devam et, dostum. Hadi. Güzel. Kalan son kısmı tamamlayabilmek için kendimi biraz da olsa sakinleştirmeye çalışıyorum. Evet! Biraz titriyorum. Evet, sanırım bayılabilirim. Şu anda burada olduğuma inanamıyorum.

Kruti| Comment

Comments