有两个TLE,时间超限了,求助大佬~~~

P1112 波浪数

```cpp #include<bits/stdc++.h> using namespace std; int a,b,c,d,e,t,f[1000001],l; char *p1,*p2,buf[100000]; #define nc() (p1==p2 && (p2=(p1=buf)+fread(buf,1,100000,stdin),p1==p2)?EOF:*p1++) int read() { int x=0,f=1; char ch=nc(); while(ch<48||ch>57) { if(ch=='-') f=-1; ch=nc(); } while(ch>=48&&ch<=57) x=x*10+ch-48,ch=nc(); return x*f; } void write(int x) { if(x<0) putchar('-'),x=-x; if(x>9) write(x/10); putchar(x%10+'0'); return; } bool lz(int x,int y) { t=0; while(x) { t++; f[t]=x%y; x/=y; if(t==2){ if(f[1]==f[2])return 0; } } if(f[1]==f[2])return 0; for(int i=3;i<=t;i++){ if(i&1){ if(f[i]!=f[1])return 0; }else{ if(f[i]!=f[2])return 0; } } return 1; } int main() { a=read(); b=read(); c=read(); d=read(); e=read(); for(int i=c;i<=d;i++) { l=0; for(int j=a;j<=b;j++){ if(lz(i,j)){ l++; } } if(l==e) { write(i); putchar('\n'); } } return 0; } ```
by OrangePayne @ 2024-02-10 11:33:22


@[FSQ_Cici_0023](/user/1264055)
by OrangePayne @ 2024-02-10 11:33:48


给你加了快读快写,然后把lz函数的顺序略微调了一下 ```cpp if(f[1]==f[2])return 0; ``` 这句忘删了,删掉
by OrangePayne @ 2024-02-10 11:35:20


加个关注呗,谢谢
by OrangePayne @ 2024-02-10 11:35:44


加个关注呗,谢谢
by HEROBRINEH @ 2024-02-10 12:05:14


@[OrangePayne](/user/732869) 不对哦。连输入都不对
by FSQ_Cici_0023 @ 2024-02-12 09:59:24


@[FSQ_Cici_0023](/user/1264055) 那个是终端输入特有的问题(它检测到EOF字符才结束,但你打不出来),你如果交评测机或文件输入输出都没有问题。
by OrangePayne @ 2024-02-12 10:08:29


你不信可以直接交,我交都过了
by OrangePayne @ 2024-02-12 10:09:22


@[OrangePayne](/user/732869) 那这个删掉,是把 ``` if(t==2){ if(f[1]==f[2])return 0; } ``` 这个都删掉吗?
by FSQ_Cici_0023 @ 2024-02-12 14:11:17


对的对的
by OrangePayne @ 2024-02-13 13:39:26


|