交到洛谷上ac了,但是本地不通过

B3637 最长上升子序列

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 噢,谢谢


|