thảo luận Leetcode contest, đường tới Guardian

  • Người tạo chủ đề Người tạo chủ đề freedom.9
  • Ngày bắt đầu Ngày bắt đầu
Trạng thái
Không mở để trả lời thêm.
Câu 4 loại bỏ cái dãy trùng như thế nào nhỉ, thua =((
Lại 3Q Gang rồi đm cay quá :ah:
ý tưởng của e là dùng DP tính được số lượng của dạng a,a,b,c,c tức là ở giữa khác 2 bên là S2notmid, rồi Tính tổng của dạng có 2 cặp giống nhau là S2

S2most = S2 - S2notmid ( ra số lượng của có 2 cặp và seq[2] là most)

xong lấy số lượng của, mid là most freq = 2 trừ đi S2most là ra dạng chỉ có 2 freq và 3 số khác nhau.

còn dạng 3,4,5 số giống nhau nữa

nói chung code khá khoai :sweat:
 
Q2 sai syntax lú mất 1 thời gian :( tịt Q4
4gmOAMB.png
1734796251243.png
4gmOAMB.png
zFNuZTA.png
zFNuZTA.png
 
Thôi bỏ cuộc, dù gì cũng submit được 1 WA là ok rồi =(( 86 thằng làm đc khoai vãi
Bài 3 cần gì sweepline nhỉ, chỉ cần merge interval theo x y thôi mà. Ăn 2 bọ Q2 ko rank 2xx lên lại Guardian rồi :ah:
Cay cái topdown dp quá
 
Q4 mình đi code y hệt bài ac này mà ko debug ra chỗ trùng ảo ma thật, ý tưởng y hệt luôn từ việc tìm 1 middle element. Thôi tối phục thù vậy

Python:
mod = 10**9+7

class Solution:
    def subsequencesWithMiddleMode(self, nums: List[int]) -> int:
        total = 0
        l,r = Counter(),Counter(nums)
        for i,n in enumerate(nums):
            j = len(nums)-i-1
            r[n] -= 1
            n22 = comb(l[n],2)*comb(r[n],2)
            n21 = comb(l[n],2)*r[n]*(j-r[n])
            n12 = (i-l[n])*l[n]*comb(r[n],2)
            n20 = comb(l[n],2)*comb(j-r[n],2)
            n02 = comb(i-l[n],2)*comb(r[n],2)
            n11 = l[n]*r[n]*(i-l[n])*(j-r[n])
            n10 = l[n]*((i-l[n])*comb(j-r[n],2)-sum(l[m]*comb(r[m],2)+l[m]*r[m]*(j-r[m]-r[n]) for m in l if m != n)-sum(comb(r[m],2)*(i-l[m]-l[n]) for m in r if m != n))
            n01 = r[n]*((j-r[n])*comb(i-l[n],2)-sum(r[m]*comb(l[m],2)+r[m]*l[m]*(i-l[m]-l[n]) for m in r if m != n)-sum(comb(l[m],2)*(j-r[m]-r[n]) for m in l if m != n))
            #print(n22,n21,n12,n20,n02,n11,n10,n01)
            total += n22+n21+n12+n20+n02+n11+n10+n01
            total %= mod
            l[n] +=1
        return total
 
Mấy thằng làm codeforces nhiều giải bài 4 này chắc vua, bên đấy toàn mấy bài counting khó sml
 
Trạng thái
Không mở để trả lời thêm.

Thống kê chủ đề

Ngày tạo
freedom.9,
Người trả lời cuối
freedom.9,
Trả lời
2.480
Lượt xem
130.074
Quay lại
Lên đầu trang