不是VIP会员,不能显示答案

题目解答

题目:
#include<bits/stdc++.h>

using namespace std;

int n;

int a[1005],f[1005];

int main() {

int i, j;

cin>> n; int ans=0;

for (i=0; i<n; i++)cin>>a[i];

for (i=0; i<n; ++i) {

f[i] = 1;

for(j= i-1; j>=0; --j)

if(a[i]>a[j])f[i]= max(f[i],f[j]+1);

ans =max(ans,f[i]);

}

cout<< ans<<"\n";

return 0;

}


输入保证是正整数n以及一个长度为n的数组,且相邻元素之间没有空格。如下例:



判断题

1) 若将第6行的“int i,j”改为“int i;”,则程序会出现编译错误。( )

2) 若将第12行的a[i]>a[j]改为a[i]<a[j],运行结果不变。( )

3) f[i]表示以i结尾的最长不下降子序列长度。( )

4) 若把第9行的"i=0;"换成"i=1;",则程序运行结果不变。( )


选择题

5) 若n= 100,则ans的最大值是( )。

6) 若n=15,a= {5,7,6,8,1,3,5,4,2,9,14,11,12,8,7},则ans的值为( )
考点:
分析:
解答:
评论:
老师: