推荐一个动态规划的c语言题
时间: 2023-07-23 07:39:31 浏览: 66
下面是一个经典的动态规划问题的C语言题目:
题目描述:
给出一个长度为n的序列,求这个序列中的最长上升子序列的长度。
输入格式:
第一行包含整数n。
第二行包含n个整数,表示整个序列。
输出格式:
输出一个整数,表示最长上升子序列的长度。
数据范围:
1≤n≤1000,−10^9≤每个元素的值≤10^9。
输入样例:
7
3 1 4 2 5 7 6
输出样例:
4
参考代码:
```c
#include <stdio.h>
#define MAX_N 1005
#define max(a,b) ((a)>(b)?(a):(b))
int n, a[MAX_N], f[MAX_N];
int main()
{
scanf("%d", &n);
for (int i = 1; i <= n; i++)
{
scanf("%d", &a[i]);
f[i] = 1;
}
int res = 1;
for (int i = 2; i <= n; i++)
{
for (int j = 1; j < i; j++)
{
if (a[j] < a[i])
{
f[i] = max(f[i], f[j] + 1);
}
}
res = max(res, f[i]);
}
printf("%d\n", res);
return 0;
}
```
阅读全文