Mark_666 @ 2024-08-27 14:57:24
#include<bits/stdc++.h>
using namespace std;
const int N=5e3+10;
int a[N];
int f[N];
int n;
int ans=-0x3f3f3f3f;
char buf[1<<21],*p1=buf,*p2=buf;
static inline char gc()
{
if(p1==p2) p2=(p1=buf)+fread(buf,1,1<<21,stdin);
return *(p1++);
}
static inline int read()
{
int fl=1,w=0;
char ch=gc();
while(!isdigit(ch)) {
if(ch=='-') fl=-1;
ch=gc();
}
while(isdigit(ch)){w=w*10+ch-'0'; ch=gc();}
return fl*w;
}
static inline void write(int x)
{
if(x<0) putchar('-'),x=-x;
if(x>9) write(x/10);
putchar(x%10+'0');
}
int main()
{
n=read();
for(int i=1;i<=n;i++) a[i]=read(),f[i]=1;
for(int i=1;i<=n;i++)
for(int j=1;j<=i-1;j++)
if(a[j]<a[i]) f[i]=max(f[i],f[j]+1),ans=max(ans,f[i]);
write(ans);
return 0;
}
本地运行没有输出是为啥,fread用的应该对吧...
by yu_666 @ 2024-08-28 15:07:34
@Mark_666 有没有一种可能,你把gc()改成getchar就过了
by Mark_666 @ 2024-08-29 08:37:49
@yu_666 那我写的fread有什么用?
by yu_666 @ 2024-08-31 17:19:39
@Mark_666 这个东西不稳定
by Mark_666 @ 2024-09-02 18:56:30
@yu_666 噢,谢谢