Guest User

Untitled

a guest
May 8th, 2026
36
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.19 KB | None | 0 0
  1. #pragma GCC optimize("Ofast")
  2. #pragma GCC optimize("O3")
  3. #pragma GCC optimize("unroll-loops")
  4. #include <bits/stdc++.h>
  5. using namespace std;
  6. #define int long long
  7. #define ld long double
  8. #define pb push_back
  9. #define f first
  10. #define s second
  11. const int N = 2e5 + 5;
  12. vector <int> divs[N];
  13. void sieve (int n) {
  14. for (int i = 1; i <= n; ++i) {
  15. for (int j = i; j <= n; j += i) {
  16. divs[j].pb(i);
  17. }
  18. }
  19. }
  20. void solve () {
  21. int n, k;
  22. cin >> n >> k;
  23. int a[n + 1];
  24. for (int i = 1; i <= n; ++i) {
  25. cin >> a[i];
  26. }
  27. int dp[n + 1] = {};
  28. vector <int> mn(N, 1e18);
  29. for (int d : divs[a[1]]) {
  30. mn[d] = min(mn[d], dp[1] + a[1] / d);
  31. }
  32. for (int i = 2; i <= n; ++i) {
  33. dp[i] = dp[i - 1] + k;
  34. for (int d : divs[a[i]]) {
  35. dp[i] = min(dp[i], mn[d]);
  36. }
  37. for (int d : divs[a[i]]) {
  38. mn[d] = min(mn[d], dp[i] + a[i] / d);
  39. }
  40. }
  41. cout << dp[n] << endl;
  42. }
  43. signed main() {
  44. ios_base::sync_with_stdio(0);
  45. cin.tie(0);
  46. cout.tie(0);
  47. sieve(N - 1);
  48. int t = 1;
  49. cin >> t;
  50. while (t--) {
  51. solve();
  52. }
  53.  
  54. return 0;
  55. }
Advertisement
Add Comment
Please, Sign In to add comment