Tình hình là sau 1 năm topic thảo luận - Leetcode contest, đường tới Guardian (https://voz.vn/t/leetcode-contest-%C4%91uong-toi-guardian.896868/) hoạt động, nhận thấy nhu cầu của anh em bắt đầu chuyển qua Codeforces để tập luyện và leo rank nên mình nhờ mod @Fire Of Heart đóng topic kia để anh em chuyển qua topic này bàn luận việc làm contests của codeforces và Leetcode hàng tuần.
1) Why Leetcode: Leetcode là 1 nền tảng rất hay cho beginners để học về DSA và đi phỏng vấn.
2) Why Codeforces: Sau khi làm gần 1k7 câu Leetcode, mình nhận ra rằng trình độ của mình cải thiện khá ít khi tập luyện ở Leetcode nên việc chuyển qua Codeforces để tập luyện leo rank là điều cần thiết, câu hỏi bên Codeforces đa dạng hơn, chia theo rating rõ ràng để anh em up solve. Nhưng mình khuyên là newbie thì nên tập trung leo lên tới tầm 2k rating Leetcode rồi mới chuyển qua Codeforces.
3) Leetcode contest là gì: Leetcode contest là nơi đấm nhau của các anh tài, mỗi tuần sẽ có 1 cuộc thi Weekly, 2 tuần 1 lần sẽ có 1 cuộc thi BiWeekly. Nếu tham gia cả 2 cuộc thi sẽ được 35 points cho anh em đổi áo. Mỗi cuộc thi kéo dài 1 tiếng rưỡi và có 4 câu, thường 4 câu sẽ có độ khó là easy, medium, medium, hard.
4) Tại sao phải tham gia Leetcode contest: Đề của Leetcode contest thường sẽ là những bài toán mới chưa có lời giải, ko search được trên google. Đề thi rất hay và đa dạng. Quan trọng là chỉ có 90ph để làm 4 bài, nếu mà giải được 3 hoặc 4 bài trong khoảng thời gian thì việc phỏng vấn pass vòng algorithm vào big techs là không khó.
5) Codeforces contest là gì: Cũng như Leetcode contest, Codeforces thường tổ chức contest hàng tuần và thường sẽ chia ra làm 4 div, div1 div2 div3 div 4, thời gian thì hình như ko cụ thể. Div 1 hầu hết chỉ dành cho các anh tài tầm rating Master đổ lên, nên mình ko nghĩ anh em cần học tới level này làm gì nếu ko có mục tiêu đi thi giải thưởng quốc gia quốc tế. Rating bên Codeforces thì chỉ cần lên được expert mình nghĩ đã dư sức đi phỏng vấn ở các cty top1 tier trên thế giới rồi. Còn div2 div3 div4 thì độ khó sẽ giảm dần, newbie thì nên tham gia div4.
6) Tại sao phải tham gia Codeforces contest: Tham gia tay to hơn, lấy rating để có thể ha oai với Vozliz, ở topic kia thì có bác @nahnahinin hình như là rank Tím Codeforces qua Leetcode contest lùa gà lừa lấy rating anh em hết
7) Mục tiêu năm mới: Làm gì cũng phải kiên trì và có mục tiêu, năm nay đặt mục tiêu 2k5+ Leetcode và 1k7 Codeforces, còn mục tiêu của topic là anh em tham gia ko còn ai phải làm Vozliz và đi interview pass vòng DSA dễ như ăn kẹo
Chốt: Kiên trì thì dần dần sẽ cải thiện, chúc anh em làm contest đều tay lấy rating của mình trong năm mới
8) Tip cho anh em leo rank dưới Guardian Leetcode, đúc kết từ kinh nghiệm ko giải được easy của mình từ 1 năm trước đây.
2) Không dùng được lib bên ngoài như sortedlist, nên phải manually copy template vào code của mình, có các template
github.com
1) Why Leetcode: Leetcode là 1 nền tảng rất hay cho beginners để học về DSA và đi phỏng vấn.
2) Why Codeforces: Sau khi làm gần 1k7 câu Leetcode, mình nhận ra rằng trình độ của mình cải thiện khá ít khi tập luyện ở Leetcode nên việc chuyển qua Codeforces để tập luyện leo rank là điều cần thiết, câu hỏi bên Codeforces đa dạng hơn, chia theo rating rõ ràng để anh em up solve. Nhưng mình khuyên là newbie thì nên tập trung leo lên tới tầm 2k rating Leetcode rồi mới chuyển qua Codeforces.
3) Leetcode contest là gì: Leetcode contest là nơi đấm nhau của các anh tài, mỗi tuần sẽ có 1 cuộc thi Weekly, 2 tuần 1 lần sẽ có 1 cuộc thi BiWeekly. Nếu tham gia cả 2 cuộc thi sẽ được 35 points cho anh em đổi áo. Mỗi cuộc thi kéo dài 1 tiếng rưỡi và có 4 câu, thường 4 câu sẽ có độ khó là easy, medium, medium, hard.
4) Tại sao phải tham gia Leetcode contest: Đề của Leetcode contest thường sẽ là những bài toán mới chưa có lời giải, ko search được trên google. Đề thi rất hay và đa dạng. Quan trọng là chỉ có 90ph để làm 4 bài, nếu mà giải được 3 hoặc 4 bài trong khoảng thời gian thì việc phỏng vấn pass vòng algorithm vào big techs là không khó.
5) Codeforces contest là gì: Cũng như Leetcode contest, Codeforces thường tổ chức contest hàng tuần và thường sẽ chia ra làm 4 div, div1 div2 div3 div 4, thời gian thì hình như ko cụ thể. Div 1 hầu hết chỉ dành cho các anh tài tầm rating Master đổ lên, nên mình ko nghĩ anh em cần học tới level này làm gì nếu ko có mục tiêu đi thi giải thưởng quốc gia quốc tế. Rating bên Codeforces thì chỉ cần lên được expert mình nghĩ đã dư sức đi phỏng vấn ở các cty top1 tier trên thế giới rồi. Còn div2 div3 div4 thì độ khó sẽ giảm dần, newbie thì nên tham gia div4.
6) Tại sao phải tham gia Codeforces contest: Tham gia tay to hơn, lấy rating để có thể ha oai với Vozliz, ở topic kia thì có bác @nahnahinin hình như là rank Tím Codeforces qua Leetcode contest lùa gà lừa lấy rating anh em hết

7) Mục tiêu năm mới: Làm gì cũng phải kiên trì và có mục tiêu, năm nay đặt mục tiêu 2k5+ Leetcode và 1k7 Codeforces, còn mục tiêu của topic là anh em tham gia ko còn ai phải làm Vozliz và đi interview pass vòng DSA dễ như ăn kẹo

Chốt: Kiên trì thì dần dần sẽ cải thiện, chúc anh em làm contest đều tay lấy rating của mình trong năm mới

8) Tip cho anh em leo rank dưới Guardian Leetcode, đúc kết từ kinh nghiệm ko giải được easy của mình từ 1 năm trước đây.
- Tập trung giải quyết 3 câu đầu tiên 1 cách nhanh nhất, bỏ câu 4 nếu rank còn thấp.
- Sau mỗi contest thì phải review lại những câu hỏi ko làm được và tìm cách optimal hơn cho nhiều câu hỏi đã làm được bằng nhiều cách khác nhau. Việc này sẽ giúp các fence phân tích được và có nhiều cách giải hơn ở những contest sau.
- Rút kinh nghiệm những lỗi đã mắc phải để cải thiện contest sau.
- Never give up, còn thở là còn gỡ, người ko chơi là người ko thắng
, còn nghỉ chơi thì chỉ mãi dừng ở 1 mức rank cùi bắp lên Voz phải chịu bị sỉ nhục. - Hôm nào làm contest tệ thì phải bị punishment bằng việc giải hơn 20 câu Medium ở tuần sau đó.
- Ngủ và nghỉ ngơi đầy đủ mỗi lần chuẩn bị thi contest, việc ngủ nghỉ đầy đủ thì lúc thi sẽ thường cho kết quả đúng nhất, những hôm mình mất ngủ là kiểu gì cũng 1Q Gang.
1 số tip cho anh em dùng Codeforces với Python:
1) Python khá hạn chế dùng recursion vì chậm và run time error ở codeforces.
Python:
from types import GeneratorType
def bootstrap(f, stack=[]):
def wrappedfunc(*args, **kwargs):
if stack:
return f(*args, **kwargs)
else:
to = f(*args, **kwargs)
while True:
if type(to) is GeneratorType:
stack.append(to)
to = next(to)
else:
stack.pop()
if not stack:
break
to = stack[-1].send(to)
return to
return wrappedfunc
Python:
@bootstrap
// Luu y dung ham yield de tra ve recursion result
def dfs(current, parent):
minNeighbor = inf
for neigbor in graph[current]:
if neigbor != parent:
result = yield dfs(neigbor, current)
minNeighbor = min(result, minNeighbor)
if vals[current] > minNeighbor:
yield minNeighbor
elif minNeighbor == inf:
yield vals[current]
else:
yield (vals[current] + minNeighbor)//2
2) Không dùng được lib bên ngoài như sortedlist, nên phải manually copy template vào code của mình, có các template
GitHub - tonghuikang/codecomp: My (mostly) Python templates for competitive programming
My (mostly) Python templates for competitive programming - tonghuikang/codecomp
Reactions:
thugiang1, blacksnow2919311, roll_witit and 15 others


Chui vào đọc thấy nhột cực kì

chuẩn bị 2k2 lên bảo vệ
