处理超时问题的一些方法
下面是针对解决超时问题的一些方法:
1.使cin,cout所花时间较少
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。 ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
2.快速输入函数 -- inline int read()(输入大数据必备)
近日比赛看到题解用这个函数来进行输入数据,据说是比scanf还要快
inline int read() { char c = getchar(); int x = 0, f = 1; while(c < '0' || c > '9') {if(c == '-') f = -1; c = getchar();} while(c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar(); return x * f; } int main() { int n=read();//这就是输入一个int类型的数 }
注意一个点,直接输入0的话会直接跳出循环,但0还是会被读进去。
3.有时候最有效的减时操作是换一种方法(dbq...)减少循环或者是减枝等等操作

#include<iostream> #include<algorithm> using namespace std; int a[300005]; #define gc getchar() inline int read(){ int x=0,f=0; char c=gc; for(;c<48||c>57;c=gc) if(c=='-')f=1; for(;c>47&&c<58;c=gc) x=x*10+c-48; return f?-x:x; } #define io read() int main() { int n; n=io; for(int i=0;i<n;i++) a[i]=io; int ans=0; for (int i = 0; i < n; i++) { if (a[0] != a[i]) { ans = max(ans, i); } if (a[n - 1] != a[i]) { ans = max(ans, n - 1 - i); } } printf("%d\n",ans); }View Code

更多精彩