1
Iは、2つの配列を有する:これを効率的に解決する方法は?
pos[n]
score[n]
が、ここで、n < = 10^5。 POS [i]は、[i]は< = 10^4
が定義スコア:
f(i,j) = abs(pos[i]-pos[j])*max(score[i],score[j])
は、私はすべてのi,j
秒間f(i,j)
の合計を見つける必要があります。
私はO(n^2)
で解決できるアルゴリズムを持っていますが、私は最適化したいです。
私は多くの時間を費やしましたが、できませんでした。
何か助けていただければ幸いです。 最悪の場合のコード http://ideone.com/q4qSNh
コンテキストの改善のためにコードのスニペットを提供できますか? – ganjeii
あなたの関数fは、iとjで対称です。すなわち、f(i、j)= f(j、i)ですので、単純な最適化は三角形のみを評価し、まだO(n^2)ですが、努力の半分です。 – Henry
私はそれを考慮した – prem