2024年3月31日发(作者:)
读入优化
inlineintread(){
intx=0,f=1;
chars=getchar();
while(s<'0'||s>'9'){
if(s=='-')f=-1;
s=getchar();
}
while(s>='0'&&s<='9'){
x=(x<<1)+(x<<3)+s-'0';
s=getchar();
}
returnf>0?x:-x;
}
//怎么用:
n=read();
改进版(遇到文件末尾返回0):
inlinellread(){
llx=0,f=1;
chars=getchar();
while((s<'0'||s>'9')&&s>0){
if(s=='-')f*=-1;
s=getchar();
}
while(s>='0'&&s<='9'){
x=(x<<1)+(x<<3)+s-'0';
s=getchar();
}
returnf>0?x:-x;
}
输出优化
voidwrite(intx){
if(x/10>0)write(x/10);
putchar(char(x%10+'0'));
}
//怎么用:
if(n<0)putchar('-'),write(-n);
elsewrite(n);
方向数组
//四方向
intd1[4][2]={{1,0},{0,-1},{-1,0},{0,1}};
//八方向
intd2[8][2]={{1,0},{1,-1},{0,-1},{-1,-1},{-1,0},{-1,1},{0,1},{1,1}};
//用于平面DFS/BFS
坐标结构体
structitn{
intx,y;
itn(){}
itn(intX,intY){
x=X,y=Y;
}
};
普通快速幂
longlongquickpow(longlonga,longlongk){
longlongans=1;
while(k){
if(k%2)
ans*=a;
a*=a;
k>>=1;
}
returnans;
}
递归快速幂
longlongquickpow(longlongx,longlongy){//x的y次方
if(y==0)return1;
if(y==1)returnx;
longlongu=quickpow(x,y>>1);
发布者:admin,转转请注明出处:http://www.yc00.com/web/1711855471a1966389.html
评论列表(0条)