Длина последовательности Фарея - C ++ - Превышен лимит времени [CPU> 1,00 с] - Kattis.com - PullRequest
0 голосов
/ 23 апреля 2020

У меня проблема с этим кодом во время выполнения. ссылка задачи

// problem's link: https://open.kattis.com/problems/farey
#include <iostream>
int f(int n){
  int my_sum = 0;
  for(int k = 2; k < n + 1; k++) my_sum += f(n / k);
  return (n * (n + 3)) / 2 - my_sum;
}
int main() {
  int n;
  std::cin>> n;
  for(int i = 0; i < n; i++){
    int k, num;
    std::cin>> k >> num;
    std::cout<< k << " " << f(num) <<std::endl;
  }
  return 0;
}

Я следовал этой формуле: a (n) = n (n + 3) / 2 - сумма (от k = 2 до n, a ([n / k ])) упомянуто здесь

Sample Input 1:
4
1 6
2 15
3 57
4 9999
Sample Output 1:
1 13
2 73
3 1001
4 30393487

Я прошел этот образец.

некоторые тесты, n = от 1000 до 1500 нажмите здесь, чтобы увидеть изображение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...