-1
什麼是最好的方式來找到所有元素的所有元素的索引可以被我整除的最小複雜性。所有arr [j]的總和在哪裏我除以j
我寫下面的代碼。但那是蠻力。我能比這更好嗎
#include<stdio.h>
int main() {
int n, q;
int mod = 1000000000 + 7;
scanf("%d", &n);
int arr[n+1];
int i;
for (i = 1; i <= n ; ++i) {
scanf("%d", &arr[i]);
}
int p;
scanf("%d", &p);
int sum = 0;
int j;
for(j = p; j <= n; j = j+p) {
sum = (sum + arr[j]) % mod;
}
printf("%d\n",sum);
return 0;
}
你必須檢查數組的所有元素,所以你不能比O(n)好。 –
好吧,你已經發布了C代碼......但是如果你認爲它不適用於特定語言,你可以將其標記爲「語言不可知」。 –
使用plain int時除法1億?這段代碼很腥,你確定你沒有得到整數溢出嗎? – Lundin