trang chủ / đề bài / upgarray

Nâng cấp mảng

Đề bài

Mô tả

Cho mảng n số nguyên dương a1,a2,…,an và tập m số nguyên tố xấu b1,b2,…,bm. Mọi số nguyên tố không nằm trong tập này được gọi là tốt.

Độ đẹp của mảng a là tổng ∑i=1nf(ai), trong đó hàm f được định nghĩa đệ quy như sau:

  • f(1)=0;
  • Gọi p là ước nguyên tố nhỏ nhất của s. Nếu p là số nguyên tố tốt thì f(s)=f(s/p)+1, ngược lại f(s)=f(s/p)−1.

Bạn được phép thực hiện một số lượng tuỳ ý (có thể bằng 0) thao tác cải thiện mảng. Mỗi thao tác gồm các bước:

  • Chọn một chỉ số r bất kỳ (1≤r≤n) và tính g=gcd(a1,a2,…,ar);
  • Gán lại ai←ai/g với mọi 1≤i≤r.

Hãy tìm độ đẹp lớn nhất của mảng mà bạn có thể đạt được. Lưu ý rằng đáp án có thể là số âm.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên n và m: số phần tử của mảng và số lượng số nguyên tố xấu.
  • Dòng thứ hai chứa n số nguyên a1,a2,…,an.
  • Dòng thứ ba chứa m số nguyên b1,b2,…,bm: tập các số nguyên tố xấu.

Dữ liệu ra

In ra một số nguyên duy nhất là đáp án của bài toán.

Ràng buộc

  • 1≤n,m≤5000
  • 1≤ai≤109
  • 2≤b1<b2<…<bm≤109, mọi bj đều là số nguyên tố

Ví dụ

Input Output Giải thích
4 5
2 4 8 16
3 5 7 11 17
10 Số 2 là số nguyên tố tốt, nên f(2)=1, f(4)=2, f(8)=3, f(16)=4, độ đẹp ban đầu đã là 10. Mọi tiền tố đều có gcd là một luỹ thừa của 2 với f>0, chia đi chỉ làm giảm độ đẹp nên không thực hiện thao tác nào.
5 2
4 20 34 10 10
2 5
-2 Độ đẹp ban đầu là −9. Chọn r=5: gcd=2, mảng thành 2,10,17,5,5. Chọn tiếp r=2: gcd(2,10)=2, mảng thành 1,5,17,5,5 với độ đẹp 0−1+1−1−1=−2.

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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0