Βαριέσαι να δεις όλα τα resources? Σου έχουμε εδώ μαζεμένα όλα τα απαραίτητα.
- Τέλειο για τελείως αρχάριους: https://usaco.guide/ (αλλά πολύ καλό ακόμα και για τους πιο έμπειρους)
- Για online διαγωνισμούς
- Εξάσκηση
- Αλγόριθμοι: https://cp-algorithms.com/
- Φτιάχνεις λογαριασμό στο Codeforces.
- Μπαίνεις συχνά στο Contests - Codeforces για να βλέπεις πότε έχει διαγωνισμούς και κάνεις register.
- Tip: Επιλέγεις ρόλο
cp-contest-reminderστο #roles στον server του Coding Club για να σου έρχεται ειδοποίηση 30 λεπτά πριν αρχίσει κάποιος διαγωνισμός. - Μπορείς να προσθέσεις και το πρόγραμμα με τους διαγωνισμούς στο calendar απ’ το https://codeforces.com/calendar
- Tip: Επιλέγεις ρόλο
- Κάνεις εξάσκηση με προβλήματα από εδώ: Problemset - Codeforces ή εδώ: CSES - CSES Problem Set - Tasks.
- Διαβάζεις λίγο από το USACO Guide και το cp-algorithms.
Τα κύρια είναι:
- https://codeforces.com/contests το μεγαλύτερο site για διαγωνισμούς.
- Οι διαγωνισμοί του χωρίζονται σε Divisions (1-4) και είναι σε φθίνουσα σειρά δυσκολίας (δηλ. το Div1 ειναι το πιο δύσκολο ενώ το Div4 το πιο εύκολο).
- Guide για το UI του (σημαντικό: δες το
Editorials)
- https://atcoder.jp/contests/
- Κάθε Σάββατο: Atcoder Beginner Contest (ABC), που όπως υπονοεί το όνομα ειναι πολύ καλοί για αρχάριους.
- Έχει επίσης τα Atcoder Regular Contest (ARC) και Atcoder Grand Contest (AGC) τα οποία είναι υψηλής ποιότητας, αλλά και αρκετά πιο δύσκολα.
- https://ucup.ac/
- Για ICPC style ομαδικούς διαγωνισμούς.
Αλλά υπάρχουν και τα:
- https://www.luogu.com.cn/
- Κινέζικο site, θα χρειαστεί να μεταφράσεις τα προβλήματα. Για οδηγίες δες εδώ.
- https://www.codechef.com/contests
- Έχει διαγωνισμούς κάθε Τετάρτη, αλλά δεν τους θεωρώ πολύ ποιοτικούς…
Για λίστα με όλους τους διαγωνισμούς δες https://clist.by/.
Κατά τη γνώμη μου αρκούν και μόνο οι διαγωνισμοί του Codeforces.
Γενικά, είναι ιδανικό να λύνεις προβλήματα λίγο πάνω απ’ το επίπεδο σου. Λύνοντας εύκολα προβλήματα δε μαθαίνεις αρκετά καινούρια πράγματα, ενώ λύνοντας πολύ δύσκολα συνήθως σπαταλάς τον χρόνο σου, γιατί στον χρόνο που θα λύσεις ένα δύσκολο θα μπορούσες να λύσεις πολλά ευκολότερα προβλήματα. Επίσης όταν υπάρχει τόσο μεγάλη δυσκολία, λογικά είναι μακριά από το επίπεδο σου οπότε δεν είσαι στο σημείο να μπορείς να το εμπεδώσεις και να γίνει κάτι που πλέον θα μπορείς να σκέφτεσαι μόνος σου κατά τη διάρκεια ενός διαγωνισμού.
- https://codeforces.com/problemset
- Κάνε filter με βάση το rating (rating = δυσκολία προβλήματος)
- Ή απλά
;gitgudστο #bot-spam :D.
- https://cses.fi/problemset/
- Συλλογή ~400 κλασσικών προβλήματων (εύκολων και δύσκολων) χωρισμένων ανά κατηγορία. Πολύ καλό για στοχευμένη εξάσκηση σε συγκεκριμένες τεχνικές.
- https://qoj.ac/category
- https://www.spoj.com/
- https://projecteuler.net/
- Προβλήματα περισσότερο μαθηματικής φύσης.
- https://kenkoooo.com/atcoder/#/table/
- Εύχρηστο aggregator για το Αtcoder.
- USACO Guide
- Ολοκληρωμένος οδηγός για αρχάριους και προχωρημένους
- Συνδυάζει θεωρία με πρακτικές ασκήσεις
- Προσφέρει δομημένη μάθηση
- CP Algorithms
- Περιέχει αλγορίθμους με έτοιμες υλοποιήσεις
- Pavel's DSA Course
- Διαλέξεις από κορυφαίο πανεπιστήμιο για αλγορίθμους και δομές δεδομένων
- Προαιρετικό, κυρίως για θεωρητικό ενδιαφέρον
- Δεν είναι αποδοτικός τρόπος βελτίωσης στο competitive programming
Δε χρειάζεται να διαβάσεις βιβλία, αλλά αν σε βοηθάει τα παρακάτω είναι πολύ καλά:
- https://github.com/kth-competitive-programming/kactl
- Βιβλιοθήκη με υλοποιήσεις δομών/αλγορίθμων
- ICPC team reference document (= μπορείς να το τυπώσεις και να το έχεις μαζί σου στους περισσότερους ICPC διαγωνισμούς)
- https://youkn0wwho.academy/topic-list
- Συγκεντρωτικό site, όπου μπορείς να βρεις προβλήματα με βάση την κατηγορία τους.
- https://cphof.org/
- Για stalking 🧐.
- https://repovive.com/roadmaps
- Υπάρχουν διάφορα (χρήσιμα και μη) Codeforces browser extensions.
- CF-Predictor - Chrome Web Store | carrot (chrome + firefox) - για να βλέπεις πόσο rating κερδίζεις/χάνεις ήδη από την ώρα του διαγωνισμού
- CF Analytics Chrome | firefox - για να βλέπεις όμορφα γραφήματα και στατιστικά από τα προβλήματα που λύνεις
- Competitive Companion Chrome | firefox - κάνει parse τα προβλήματα από διάφορες πλατφόρμες και ανοίγει απευθείας νέο αρχείο στον editor σου.
- Rating based heatmap Chrome | firefox
- Υπάρχουν πολλά ακόμη, αλλά αυτά κρίναμε ως πιο χρήσιμα
- https://codeforces.com/edu/courses
- https://codeforces.com/catalog
- Δε χρείαζεται να μάθεις πολλούς αλγορίθμους/δομές/τεχνικές. Μπορείς να φτάσεις Candidate Master στο Codeforces γνωρίζοντας μονο dfs, prefix sums, binary search (συμφωνα με έναν coder χρειάζεσαι και Segment Trees).
- Το σημαντικό είναι να εξασκηθείς στο problem solving. Δες τον φάκελο
How to practice?στο https://codeforces.com/catalog για περισσότερα. - ❗Μη ξεχάσεις να βάλεις χώρα = Ελλάδα στα Codeforces/Atcoder, για να μπορω να σε στοκάρω :D.
- Παλιοί διαγωνισμοί
- https://codeforces.com/gyms κάνε filter contest type→Official ICPC contest και διάλεξε ICPC region
- https://qoj.ac/category/2 καθόλου ολοκληρωμένο, λείπουν πολλοί διαγωνισμοί, αλλά είναι οργανωμένα με πιο user friendly τρόπο
- Ομαδικοί διαγωνισμοί
- https://ucup.ac/ ICPC style διαγωνισμοί, με ομάδες των 3, συνήθως τα rounds είναι βασισμένα σε κάποιον άλλο regional ή κάποιο training camp, αρκετά υψηλό επίπεδο
- Team Reference Document
- Coding Club Ελληνικός σέρβερ με έδρα το τμήμα Πληροφορικής του ΕΚΠΑ.
- Errictho server, ο μεγαλύτερος ανοιχτός server
Div 1 Servers: