trang chủ / bài tập / grassseg / lời giải

Đoạn Cỏ

Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người viết lời giải.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
Tác giả: huunguyenhuunguyen

Lời giải: Đoạn Cỏ

Hướng tiếp cận

Sắp xếp theo giá trị k giảm dần, dần dần thêm các đoạn đủ dài, dùng cây thống kê thứ tự để đếm.

Thuật toán

  1. Sắp xếp các đoạn theo ki giảm dần.
  2. Sắp xếp theo độ dài giảm dần.
  3. Duy trì hai order statistic tree chứa đầu trái và đầu phải của các đoạn đã thêm.
  4. Khi xử lý đoạn i (theo k giảm dần), thêm tất cả đoạn có độ dài ki vào cây.
  5. Đáp án cho đoạn i = (số đoạn đã thêm 1) (số đoạn có r<i+ki) (số đoạn có >riki).

Độ phức tạp

  • Thời gian: O(NlogN)
  • Bộ nhớ: O(N)

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0