51nod 1055 最長等差數列

2021-08-02 22:54:04 字數 964 閱讀 3311

n個不同的正整數,找出由這些數組成的最長的等差數列。

例如:1 3 5 6 8 9 10 12 13 14

等差子數列包括(僅包括兩項的不列舉)

1 3 5

1 5 9 13

3 6 9 12

3 8 13

5 9 13

6 8 10 12 14

其中6 8 10 12 14最長,長度為5。

input

第1行:n,n為正整數的數量(3 <= n <= 10000)。

第2 - n+1行:n個正整數。(2<= a[i] <= 10^9)

output

最長等差數列的長度。
input示例

1013

5689

1012

1314

output示例

5

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

dp~

看到題目,明明是n^2的,卻不給n^2的空間,結果

世界上居然還有short int這種神奇的型別,實在是太厲害了。

用f[i][j]表示以第i和j項為前兩項的最長長度,直接dp就好了~

從網上學了一種神奇的dp方法,見**~

#include#include#include#includeusing namespace std;

int n,a[10001],ans;

short int f[10001][10001];

int read()

while(ch>='0' && ch<='9')

return x*f;

}int main()

} }ans=max(ans,2);

printf("%d\n",ans);

return 0;

}

51nod 1055 最長等差數列

原題鏈結 1055 最長等差數列 基準時間限制 2 秒 空間限制 262144 kb 分值 80 難度 5級演算法題 n個不同的正整數,找出由這些數組成的最長的等差數列。例如 1 3 5 6 8 9 10 12 13 14 等差子數列包括 僅包括兩項的不列舉 1 3 5 1 5 9 13 3 6 9...

51nod 1055最長等差數列 dp

n個不同的正整數,找出由這些數組成的最長的等差數列。例如 1 3 5 6 8 9 10 12 13 14 等差子數列包括 僅包括兩項的不列舉 1 3 5 1 5 9 13 3 6 9 12 3 8 13 5 9 13 6 8 10 12 14 其中6 8 10 12 14最長,長度為5。因為沒看清題...

51nod 1055 最長等差數列(DP)

1055 最長等差數列 基準時間限制 2 秒 空間限制 262144 kb 分值 80 難度 5級演算法題 n個不同的正整數,找出由這些數組成的最長的等差數列。例如 1 3 5 6 8 9 10 12 13 14 等差子數列包括 僅包括兩項的不列舉 1 3 5 1 5 9 13 3 6 9 12 3...