/ 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 প্রোগ্রামিং প্রোতিযােগিতা:
- Google Code Jam
- Facebook Hacker Cup
- International Collegiate Programming Contest (ICPC)
- International Olympiad in Informatics (IOI)
Online প্রোগ্রামিং প্রোতিযােগিতা:
Competitive Programming কিভাবে শুরু করবো?
- যেকোন একটি প্রোগ্রামিং ভাষার মৌলিক বিষয়গুলো শিখুন
- সমস্যা সমাধান (problem solving) শুরু করুন
- URI Online Judge এ অনুশীলন করুন
- বিভিন্ন OJ তে প্রচেষ্টা করুন (Codeforces, Codechef, Atcoder, LightOJ, etc.)
- Contest দেওয়া শুরু করুন
- 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