求助 关于本题快读不兼容型
查看原帖
求助 关于本题快读不兼容型
314280
张语诚ZYC楼主2023/10/13 21:56

大佬们求助

这个题有一个奇怪的问题,使用快读在测评机上就会 TLE,但是在 Luogu 在线 IDE 上和本地测试都能过。请大佬帮助,万分感谢!

下面两个代码唯一区别是读入是否使用快读(应该没有问题)。

TLE Code

#include<bits/stdc++.h>
using namespace std;
inline int read_int(){
    int s=0,w=1;
    char ch=getchar();
    while(ch<'0'||ch>'9'){
        if(ch=='-'){
            ch=getchar();
        }
    }
    while(ch>='0'&&ch<='9'){
        s=10*s+ch-'0';
        ch=getchar();
    }
    return s*w;
}
const int MAXN=1e3+10;
int n,m,cnt ;
int h[MAXN];
queue<int> mem;
int main(){
    m=read_int(),n=read_int();
    for(int ki=1;ki<=n;ki+=1){
        int en=read_int();
        if(!h[en]){
            cnt+=1;
            mem.push(en);
            h[en]=1;
            while(mem.size()>m){
                int tp=mem.front();
                h[tp]=0;
                mem.pop();
            }
        }
    }
    cout<<cnt;
    return 0;
}

AC Code

#include<bits/stdc++.h>
using namespace std;
inline int read_int(){
    int s=0,w=1;
    char ch=getchar();
    while(ch<'0'||ch>'9'){
        if(ch=='-'){
            ch=getchar();
        }
    }
    while(ch>='0'&&ch<='9'){
        s=10*s+ch-'0';
        ch=getchar();
    }
    return s*w;
}
const int MAXN=1e3+10;
int n,m,cnt ;
int h[MAXN];
queue<int> mem;
int main(){
    // m=read_int(),n=read_int();
    cin>>m>>n;
    for(int ki=1;ki<=n;ki+=1){
        // int en=read_int();
        int en;
        cin>>en;
        if(!h[en]){
            cnt+=1;
            mem.push(en);
            h[en]=1;
            while(mem.size()>m){
                int tp=mem.front();
                h[tp]=0;
                mem.pop();
            }
        }
    }
    cout<<cnt;
    return 0;
}
2023/10/13 21:56
加载中...