国外网站建设的发展,虚拟主机wordpress解压位置,文档下载页面模板,网络推广精准营销推广我们平常写代码的时候#xff0c;经常超时#xff0c;非常难受#xff0c;所以#xff0c;我写了这篇文章#xff0c;让你的代码提升速度#xff08;这些方法作者亲测有效#xff0c;用了这些方法#xff0c;足足提升了1秒#xff01;虽然最后题目还是没过#xff09…我们平常写代码的时候经常超时非常难受所以我写了这篇文章让你的代码提升速度这些方法作者亲测有效用了这些方法足足提升了1秒虽然最后题目还是没过
1、读入、输出加速
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
这三行代码可以提升我们cin和cout的读入和输出速度具体原理我也不太懂反正你也不用知道会用就行了
但是我们要注意就算我们用了这三行代码cin和cout的读入输出速度还是没有printf和scanf快所以想要加速的更快就要用printf和scanf
这里还有一种加速方法叫快读快写似乎比printf更快我也不知道是不是真的
inline int read(){//快读int x0,w0;char ch0;while(!isdigit(ch)){w|ch-;chgetchar();}while(isdigit(ch)){x(x3)(x1)(ch^48);chgetchar();}return w ? -x : x;
}
inline void write(int x){//快写if(x0)putchar(-),x-x;if(x9)write(x/10);putchar(x%100);
}
原理嘛多看几遍大概都能看懂主要是怎么用
快读这么用
int x;//要读入x
xread();//xread读入的值
快写这么用
int x5;//要输出x
write(x);//输出x
注意快读不能读入字符只能读入数字读入字符一点反应也没有快写不能写字符只能输出数字
快读快写还用升级版
namespace IO{
int len 0;
char ibuf[(120)1],*iS,*iT,out[(125)1];
#define gh() \(iSiT?iT(iSibuf)fread(ibuf,1,(120)1,stdin), \(iSiT?EOF:*iS):*iS)
#define reg register
inline int read(){reg char chgh();reg int x0;reg char t0;while(ch0||ch9)t|ch-,chgh();while(ch0ch9)xx*10(ch^48),chgh();return t ? -x : x;
}
inline void putc(char ch){out[len]ch;
}
template class T inline void write(T x){if (x 0)putc(-),x-x;if (x 9)write(x/10);
out[len]x%1048;
}
inline void flush(){fwrite(out,1,len,stdout);len0;
}
}
using IO::flush;
using IO::putc;
using IO::read;
using IO::write;
虽然我知道这是升级版但我不会用╥﹏╥
2、O3优化
#pragma GCC optimize(2)
写代码的时候把这句写进去写在头文件下面就能加速了这是O2优化那什么是O3优化呢
#pragma GCC optimize(3)
这就是O3优化把2改成3就好了很简单吧而且O3确实比O2快亲测有效 好了这就是我知道的所有加速方法了当然还是有一些小细节的东西比如在循环内定义变量合在循环外定义变量有什么区别这些我就不太懂了你们可以找别的问文章