Back

/ 2 min read

Competitive Programming

Competitive Programming (CP) হলো মানসিক খেলা যা ইন্টারনেট এবং স্থানীয় ভাবে অনুষ্ঠিত হয়। এখানে অংশ গ্রহন কারিদেরকে নির্দিষ্ট সংখ্যক সমস্যা দেওয়া হয়, নির্দিষ্ট সময়ে সমাধান করার জন্য।

Last Updated:

Competitive Programming (CP) কি?

Competitive Programming (CP) হলো মানসিক খেলা যা ইন্টারনেট এবং স্থানীয় ভাবে অনুষ্ঠিত হয়। এখানে অংশ গ্রহন কারিদেরকে নির্দিষ্ট সংখ্যক সমস্যা দেওয়া হয়, নির্দিষ্ট সময়ে সমাধান করার জন্য। যে বা যে দল সব থেকে বেশি সমস্যা সমাধান করতে পারে বা দুই দল সমান সংখ্যক সমস্যা সমাধান করলে যারা আগে করতে পারে, তারা বিজয়ী হয়।

তবে আমার কাছে CP হলো চিন্তা করতে শেখার সবথেকে সেরা পদ্ধতি। CP এর মাধ্যেমে একজন প্রোগ্রামার চিন্তা করতে শেখে, নতুন কিছু শেখার জন্য সর্বদা প্রস্তুত থাকে।

CP এবং Problem Solving এর মধ্যে পার্থক্য কি?

আনেকেই CP এবং Problem Solving কে একই জিনিস মনে করে। চিন্তাটা অনেকটা সত্য হলেও পুরোপুরি সত্য নয়। এই বিষয়টা একটি উদাহরনের মাধ্যেমে বুঝা যাক:

  • Problem Solving: বাইক চালানো শেখা এবং নিয়মিত বাইক চালানো
  • Competitive Programming: সেই বাইক নিয়ে রেসিং প্রতিযোগিতায় অংশ নেওয়া

উল্লেখযোগ্য Programming Contests:

Onsite প্রোগ্রামিং প্রোতিযােগিতা:

  1. Google Code Jam
  2. Facebook Hacker Cup
  3. International Collegiate Programming Contest (ICPC)
  4. International Olympiad in Informatics (IOI)

Online প্রোগ্রামিং প্রোতিযােগিতা:

  1. Codeforces
  2. Codechef
  3. Atcoder
  4. LeetCode

Competitive Programming কিভাবে শুরু করবো?

  1. যেকোন একটি প্রোগ্রামিং ভাষার মৌলিক বিষয়গুলো শিখুন
  2. সমস্যা সমাধান (problem solving) শুরু করুন
  3. URI Online Judge এ অনুশীলন করুন
  4. বিভিন্ন OJ তে প্রচেষ্টা করুন (Codeforces, Codechef, Atcoder, LightOJ, etc.)
  5. Contest দেওয়া শুরু করুন
  6. Data Structure and Algorithm শেখা শুরু করুন

কিছু গুরুত্বপূর্ন Data Structure and Algorithm:

  • Binary Search
  • Sorting (Merge Sort, Quick Sort, etc)
  • Graph Theory
  • Strings
  • Greedy
  • Constructive Algorithm
  • Dynamic Programming
  • Bit Manipulation
  • Game Theory
  • Number Theory
  • Stack, Queue, Link list
  • Tree, Segment Tree
  • Heap and maps
  • Disjoint Set Union, Trie, etc

Learning Resources

  1. কম্পিউটার প্রোগ্রামিং-প্রথম খণ্ড (তামিম শাহরিয়ার সুবিন)
  2. প্রোগ্রামিং কনটেস্ট ডেটা স্ট্রাকচার ও অ্যালগরিদম (মো: মাহবুবুল হাসান)
  3. Competitive Programmer’s Handbook (Antti Laaksonen)
  4. Competitive Programming 3 (Felix Halim and Steven Halim)
  5. cp-algorithms.com