trang chủ / bài tập / madsnakes

Mối nguy từ đàn rắn dữ

Đề bài

Mô tả

Khu vực nhiệm vụ là một lưới ô vuông kích thước 1000×1000. Trên lưới có N con rắn; con rắn thứ i nằm tại ô (Xi,Yi) và có mức độ nguy hiểm Bi. Không có hai con rắn nào ở cùng một ô.

Ta sẽ tạo ra M phân thân để tấn công. Mỗi phân thân chọn tấn công một con rắn làm mục tiêu, và các phân thân phải chọn các con rắn khác nhau (mỗi con rắn được chọn làm mục tiêu bởi nhiều nhất một phân thân). Tất cả phân thân tấn công đồng thời bằng đòn tấn công có bán kính R: khi con rắn ở ô (X,Y) bị chọn làm mục tiêu, thì nó cùng mọi con rắn ở ô (X,Y) thỏa mãn max(|XX|,|YY|)R đều bị tiêu diệt.

Với mỗi cách chọn ra M con rắn làm mục tiêu, điểm của cách đó được định nghĩa là bình phương của tổng mức độ nguy hiểm của tất cả các con rắn bị tiêu diệt.

Hãy tính tổng điểm trên tất cả các cách chọn M con rắn làm mục tiêu (có (NM) cách). Vì kết quả có thể rất lớn, hãy in ra phần dư khi chia cho 109+7.

Dữ liệu vào

  • Dòng đầu chứa ba số nguyên N, M, R.
  • N dòng tiếp theo, dòng thứ i chứa ba số nguyên Xi, Yi, Bi.

Dữ liệu ra

  • In ra một số nguyên duy nhất là tổng điểm trên tất cả các cách chọn, lấy phần dư khi chia cho 109+7.

Ràng buộc

  • 1MN2000
  • 0R<1000
  • 1Xi,Yi1000
  • 1Bi106
  • Không có hai con rắn nào ở cùng một ô.

Ví dụ

Input Output Giải thích
4 2 1
1 1 10
2 2 20
2 3 30
5 2 40
33800 (42)=6 cách chọn 2 mục tiêu. Ví dụ chọn mục tiêu là rắn 2 và rắn 3: đòn của rắn 2 (bán kính 1) diệt cả rắn 1, 2, 3; đòn của rắn 3 diệt rắn 2, 3. Tổng bị diệt là rắn 1, 2, 3 với tổng nguy hiểm 60, điểm 602=3600. Cộng điểm của cả 6 cách được 33800.
4 1 0
1 1 10
1 999 30
1 1000 40
1 2 20
3000 R=0 nên mỗi đòn chỉ diệt đúng con rắn mục tiêu. Với M=1, mỗi cách chọn một con rắn và điểm là Bi2. Tổng là 102+302+402+202=3000.

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