vipcodejff @ 2024-11-01 20:36:39
#include <iostream>
using namespace std;
int N,num;
int a[1111];
int f[1111]={};
int main()
{
cin>>N;
for(int i=0;i<1111;i++){
f[i]=1;
}
for(int i=0;i<N;i++){
cin>>a[i];
}
for(int i=0;i<N;i++){
for(int j=0;j<i;j++){
if(a[i]>a[i-j]){
f[i]=f[i-j]+1;
}
}
}
for(int i=1;i<N;i++){
num=max(f[i],f[i-1]);
}
cout<<num<<endl;
return 0;
}
by wang6w6 @ 2024-11-03 19:44:48
@vipcodejff 他在比最大时应该是与自己比,而且你的状态转移方程好奇怪啊```
using namespace std;
int N,num; int a[5111]; int f[5111]={};
int main()
{
cin>>N;
// for(int i=0;i<1111;i++){
//
// }
for(int i=0;i<N;i++){
cin>>a[i];
f[i]=1;
}
for(int i=0;i<N;i++){
for(int j=0;j<i;j++){
if(a[j]<a[i]){
f[i]=max(f[i],f[j]+1);
num=max(f[i],num);
}
}
}
// for(int i=0;i<N;i++){
//
// }
cout<<num<<endl;
return 0;
}
by wang6w6 @ 2024-11-03 19:46:49
他在比最大时应该是与自己比而且你的状态转移方程好奇怪啊
#include <iostream>
using namespace std;
int N,num;
int a[5111];
int f[5111]={};
int main()
{
cin>>N;
// for(int i=0;i<1111;i++){
//
// }
for(int i=0;i<N;i++){
cin>>a[i];
f[i]=1;
}
for(int i=0;i<N;i++){
for(int j=0;j<i;j++){
if(a[j]<a[i]){
f[i]=max(f[i],f[j]+1);
num=max(f[i],num);
}
}
}
// for(int i=0;i<N;i++){
//
// }
cout<<num<<endl;
return 0;
}
错了错了重发一遍
by vipcodejff @ 2024-11-08 19:18:20
@wang6w6 谢谢大佬