Husqvarna701SM
Senior Member
Sai hướng bài cuối mất mẹ 1 tiếng
Mình đọc đề sai bài 3, strictly between mà tưởng strictly smaller betweenXem tệp đính kèm 3303946
Sai hướng bài cuối mất mẹ 1 tiếng

sao fen nghĩ đc tới rolling hash hay vậyMá ngồi làm rolling hash mãi éo ra. Cuối cùng bisect thì ăn luôn. Lại feed r. Thôi tối làm cf. 2k5 chắc peak của mình r. Lên 3k xem chừng hard![]()

Thì cách bi search ngu mà. Tí em viết chosao fen nghĩ đc tới rolling hash hay vậy
Fen share ý tưởng bisearch mình đọc thử, chứ mình dùng counter ko nghĩ ra đi bisearch kiểu gì.
via theNEXTvoz for iPhone
))Ngu hay khôn cũng xin code để có nhiều góc nhìn khác nhau fenThì cách bi search ngu mà. Tí em viết cho
Thì ban đầu em dùng rollinghash đếm từng thằng 1 xong cộng lên))

Nhóm các phần tử trùng nhau, lưu index start của mỗi nhómNgu hay khôn cũng xin code để có nhiều góc nhìn khác nhau fen![]()
Còn cách rolling hash chắc bỏ đi
via theNEXTvoz for iPhone
)). Xong đếm nốt các bộ chung 1 nhóm thỏa mãn bài toán là dcMà nếu fen bisearch thì tìm sub array có divisible by k hay ko kiểu gì nhỉ. Mình chỉ biết cách đếm bằng hashmap.Nhóm các phần tử trùng nhau, lưu index start của mỗi nhóm
Lưu list index kết thúc theo số dư của mảng prefixsum
Xong với mỗi list index đó cần chọn các bộ thỏa mãn k chung nhóm, thì cái này em dùng binary search)). Xong đếm nốt các bộ chung 1 nhóm thỏa mãn bài toán là dc
Nói chung cũng na ná. Mà đang theo hướng đó nên nghĩ dùng bs thôi
Em dùng prefix sum, cũng hashmap đó. Dùng bs để check xem cặp index nào thỏa mãn mà nằm kwr 2 group khác nhau để đảm bảo uniqueMà nếu fen bisearch thì tìm sub array có divisible by k hay ko kiểu gì nhỉ. Mình chỉ biết cách đếm bằng hashmap
via theNEXTvoz for iPhone
))Mình hiểu rồi fen, thank fen, mình mới updateEm dùng prefix sum, cũng hashmap đó. Dùng bs để check xem cặp index nào thỏa mãn mà nằm kwr 2 group khác nhau để đảm bảo unique))
class Solution:
def numGoodSubarrays(self, nums: List[int], k: int) -> int:
m = defaultdict(int)
m[0] = 1
exclude = defaultdict(int)
res = 0
prefix = 0
for i, num in enumerate(nums):
pre = prefix
prefix = (prefix + num) % k
res += m[prefix]
m[prefix] += 1
if i > 0 and nums[i - 1] == nums[i]:
exclude[(num, pre)] += 1
res -= exclude[(num, prefix)]
return res
Quá kinh, tốc độ này vài contests là bảo vệ rồi fenTuần trước làm bài bay quá nên tuần này xin phép tạm nghỉ cày cuốc cho đúng cái rating sau quay lại kiếm cái badge bảo vệ cho oai![]()
Xem tệp đính kèm 3310507
rank 3 số mà, tầm này là tốc độ r, chắc lên lại 2k5 xong e qua cf làm hoy, tối nay có contest sponsor, thử sức xem sao
Cố gắng lên 2k5 cho xong mục tiêu chắc mình dừng để làm daily thôi, bỏ codeforces chứ già rồi ko đú nổi để tgian làm cái khácrank 3 số mà, tầm này là tốc độ r, chắc lên lại 2k5 xong e qua cf làm hoy, tối nay có contest sponsor, thử sức xem sao

ừa cf cảm giác căng thẳng quá, cày thử xem sao thím.Cố gắng lên 2k5 cho xong mục tiêu chắc mình dừng để làm daily thôi, bỏ codeforces chứ già rồi ko đú nổi để tgian làm cái khác
Mà lên đc 2k5 chắc phải 2 năm nữa![]()
via theNEXTvoz for iPhone
cố gắng để được như bác, phận đi code Android quèn như e phải cố nhiềuừa cf cảm giác căng thẳng quá, cày thử xem sao thím.
Thả cái ảnh này động lực cho ae làm contest nhé. Xem tệp đính kèm 3310890

Quá ngon, phát cạc thôi. Làm gương cho @LmaoSuVuongừa cf cảm giác căng thẳng quá, cày thử xem sao thím.
Thả cái ảnh này động lực cho ae làm contest nhé. Xem tệp đính kèm 3310890