ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#215363 | #2478. 数!! | nodgd | 100 | 158ms | 1264kb | C++11 | 1.4kb | 2024-11-28 21:19:46 | 2024-11-28 23:12:39 |
answer
#include <bits/stdc++.h>
using namespace std;
const int MAX_N = 2000 + 5;
int gcd(int a, int b) {
for (int t; b; t = a, a = b, b = t % a);
return a;
}
int N, M;
int a[MAX_N], g[MAX_N], av[MAX_N], gv[MAX_N], f[MAX_N];
set<int> b;
int get_val(int y) {
int val = 0;
for (int x: b) {
for (; y % x == 0; y /= x) {
val --;
}
}
for (; ~y & 1; y >>= 1) val ++;
for (int x = 3; x * x <= y; x += 2) {
for (; y % x == 0; y /= x) {
val ++;
}
}
if (y > 1) val ++;
return val;
}
int main() {
scanf("%d%d", &N, &M);
for (int i = 1; i <= N; i ++) {
scanf("%d", &a[i]);
g[i] = gcd(g[i - 1], a[i]);
}
for (int i = 1, x; i <= M; i ++) {
scanf("%d", &x);
b.insert(x);
}
int sum = 0, ans;
for (int i = 1; i <= N; i ++) {
av[i] = get_val(a[i]);
gv[i] = get_val(g[i]);
sum += av[i];
// printf("i=%d, a=%d, av=%d, g=%d, gv=%d\n", i, a[i], av[i], g[i], gv[i]);
}
ans = sum;
for (int i = 1; i <= N; i ++) {
f[i] = 1e9;
for (int j = i; j >= 0; j --) {
f[i] = min(f[i], f[j] + gv[i] * (i - j));
}
ans = max(ans, sum - f[i]);
// printf("f[%d]=%d\n", i, f[i]);
}
printf("%d\n", ans);
return 0;
}
详细
小提示:点击横条可展开更详细的信息
Subtask #1:
score: 20
Accepted
Test #1:
score: 20
Accepted
time: 0ms
memory: 1244kb
input:
1 1 2 2
output:
0
result:
ok single line: '0'
Test #2:
score: 0
Accepted
time: 0ms
memory: 1244kb
input:
1 1 2 3
output:
1
result:
ok single line: '1'
Test #3:
score: 0
Accepted
time: 0ms
memory: 1248kb
input:
3 1 2 4 8 2
output:
-3
result:
ok single line: '-3'
Subtask #2:
score: 20
Accepted
Test #4:
score: 20
Accepted
time: 0ms
memory: 1248kb
input:
2 1 18 2 2
output:
2
result:
ok single line: '2'
Test #5:
score: 0
Accepted
time: 0ms
memory: 1248kb
input:
4 2 30 30 5 5 2 3
output:
2
result:
ok single line: '2'
Test #6:
score: 0
Accepted
time: 0ms
memory: 1248kb
input:
15 7 60 30 100 75 20 33 12 35 23 62 32 90 24 52 23 3 5 11 13 19 23 101
output:
7
result:
ok single line: '7'
Subtask #3:
score: 10
Accepted
Test #7:
score: 10
Accepted
time: 0ms
memory: 1252kb
input:
35 1 20736 2304 73728 1296 1728 216 864 3456 110592 10368 147456 288 9216 2592 331776 663552 1152 14...
output:
188
result:
ok single line: '188'
Test #8:
score: 0
Accepted
time: 0ms
memory: 1248kb
input:
35 1 147456 288 165888 55296 442368 864 3456 576 41472 663552 13824 10368 72 6912 5184 1296 4608 737...
output:
188
result:
ok single line: '188'
Test #9:
score: 0
Accepted
time: 0ms
memory: 1248kb
input:
32 1 2916 108 216 1458 34992 54 18 648 5832 6 36 324 432 104976 11664 17496 13122 4374 1296 72 972 1...
output:
-47
result:
ok single line: '-47'
Subtask #4:
score: 20
Accepted
Test #10:
score: 20
Accepted
time: 0ms
memory: 1260kb
input:
100 39 55963308 984638924 41032888 833281249 814004061 372491234 516777004 12668415 19664367 8195111...
output:
425
result:
ok single line: '425'
Test #11:
score: 0
Accepted
time: 1ms
memory: 1260kb
input:
100 30 807458350 234646743 73099793 585439031 78447394 762454844 524527133 533941279 54244237 436163...
output:
402
result:
ok single line: '402'
Test #12:
score: 0
Accepted
time: 1ms
memory: 1256kb
input:
100 7 671352881 601723584 131976667 593070892 190314381 806913088 528979675 530619743 75485283 59444...
output:
405
result:
ok single line: '405'
Test #13:
score: 0
Accepted
time: 0ms
memory: 1260kb
input:
100 43 602359651 412275154 667978141 72412956 149022075 515893598 14253520 397019552 645066892 68270...
output:
420
result:
ok single line: '420'
Test #14:
score: 0
Accepted
time: 0ms
memory: 1256kb
input:
100 45 109852216 659556677 672550819 894716811 742232723 423777589 788776847 494296357 243128233 402...
output:
370
result:
ok single line: '370'
Subtask #5:
score: 15
Accepted
Test #15:
score: 15
Accepted
time: 12ms
memory: 1260kb
input:
2000 83 1 847093291 382203707 11795829 732991987 572089539 46752335 27875514 293639495 101157403 597...
output:
8030
result:
ok single line: '8030'
Test #16:
score: 0
Accepted
time: 15ms
memory: 1260kb
input:
2000 65 1 894158865 825317666 620512681 534233920 13520317 493245981 359586805 136928065 583523268 4...
output:
8100
result:
ok single line: '8100'
Test #17:
score: 0
Accepted
time: 16ms
memory: 1264kb
input:
2000 84 1 382857625 80364735 518911717 420320039 326384172 33753645 125206551 417599708 638300721 17...
output:
7946
result:
ok single line: '7946'
Test #18:
score: 0
Accepted
time: 14ms
memory: 1260kb
input:
2000 34 1 618009607 36020973 929512863 125824987 830425694 101380318 674440470 456055029 273376102 1...
output:
8095
result:
ok single line: '8095'
Test #19:
score: 0
Accepted
time: 15ms
memory: 1260kb
input:
2000 69 1 285988632 34012906 859151285 393316072 84860647 39757901 480944703 318138454 794464495 131...
output:
8031
result:
ok single line: '8031'
Subtask #6:
score: 10
Accepted
Test #20:
score: 10
Accepted
time: 6ms
memory: 1264kb
input:
2000 90 732495 785432 714893 954891 479586 221979 551506 327947 344542 493501 383766 41829 639983 10...
output:
7358
result:
ok single line: '7358'
Test #21:
score: 0
Accepted
time: 0ms
memory: 1264kb
input:
2000 17 53165 611946 416649 674924 172614 557897 245494 53564 48910 638992 441423 321506 285285 2857...
output:
7210
result:
ok single line: '7210'
Test #22:
score: 0
Accepted
time: 4ms
memory: 1260kb
input:
2000 40 577062 708537 60432 666426 937013 183103 673850 188517 916161 665420 573506 146759 273437 14...
output:
7321
result:
ok single line: '7321'
Test #23:
score: 0
Accepted
time: 4ms
memory: 1260kb
input:
2000 27 518985 638050 453258 823576 267106 15755 398108 410949 757682 738086 254637 503914 918541 20...
output:
7327
result:
ok single line: '7327'
Test #24:
score: 0
Accepted
time: 4ms
memory: 1264kb
input:
2000 16 506895 817207 936837 663303 800812 839411 529740 723370 319909 773205 160646 683465 974107 1...
output:
7335
result:
ok single line: '7335'
Subtask #7:
score: 5
Accepted
Test #25:
score: 5
Accepted
time: 15ms
memory: 1264kb
input:
2000 65 79610144 529207300 674986588 907408557 40519993 721716208 342931725 358601080 21591396 87849...
output:
8126
result:
ok single line: '8126'
Test #26:
score: 0
Accepted
time: 11ms
memory: 1260kb
input:
2000 23 112162568 36490648 503891096 890018181 703697300 57604626 227080400 791018720 155329058 7012...
output:
8077
result:
ok single line: '8077'
Test #27:
score: 0
Accepted
time: 13ms
memory: 1264kb
input:
2000 28 530531614 938263045 57748244 47730064 482466018 61305825 388695902 69153315 53561789 3687236...
output:
8264
result:
ok single line: '8264'
Test #28:
score: 0
Accepted
time: 12ms
memory: 1260kb
input:
2000 58 152149073 547665030 925374630 234630834 984704487 562457138 209076336 119568746 176642539 99...
output:
8016
result:
ok single line: '8016'
Test #29:
score: 0
Accepted
time: 15ms
memory: 1260kb
input:
2000 44 371031216 27082163 139024242 570706323 891353786 255487429 826533270 772591212 461650663 544...
output:
8043
result:
ok single line: '8043'
Extra Test:
score: 0
Extra Test Passed