整理的算法模板合集: ACM模板
- NO.10: 特殊运算优化:
取模优化:
inline int inc(int x,int v,int mod){
x+=v;return x>=mod?x-mod:x;}//代替取模+
inline int dec(int x,int v,int mod){
x-=v;return x<0?x+mod:x;}//代替取模-
或者对于模数p进行#define宏定义
绝对值优化:
inline int Abs(int a){
//绝对值优化
{
int b=a>>31;
return (a+b)^b;
}
-
NO.9:前置
++/--
运算符:(有利无弊) -
NO.8:
if()else
语句比()?():()
语句慢(但慢的不多,在判断较少的时候还是用if吧)。
网上很多说if比?:慢,但是其实不是这样的。二者的汇编除了文件名不一样其他都一模一样。其实不是?:比if快而是?:比if-else快。
- NO.7: 内联:
函数内联:比如说:
inline add(int u,int v)
{
star[++cnt].to=v;
star[cnt].nxt=head[u];
head[u]=cnt;
}
但要拒绝inline
大递归函数,用的少的函数比如只用1
次的就不要inline
了,那样反而更慢;