常用模板汇总
Posted wjsoj
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常用模板汇总相关的知识,希望对你有一定的参考价值。
二分排序
int A(int l,int r)
{
int mid=a[(l+r)/2];
int i=l,j=r;
while(i<=j)
{
while(a[i]<mid&&i<=r)
i++;
while(a[j]>mid&&j>=l)
j--;
if(i<=j)
{
swap(a[i],a[j]);
i++;
j--;
}
}
if(l<=j)
A(l,j);
if(i<=r)
A(i,r);
return 0;
}
欧拉筛
bool isprime[10005];
int prime[5005];
int top=1;
memset(isprime,1,sizeof(isprime));
for(int i=2;i<10000;i++)
{
if(isprime[i])
prime[top++]=i;
for(int j=1;j<top;j++)
{
if(i*prime[j]>10000)
break;
isprime[i*prime[j]]=0;
if(i%prime[j]==0)
break;
}
}
高精加
string s,sx;
int a[505],b[505],ans[505];
int main(int argc, char const *argv[])
{
cin>>s>>sx;
memset(a,sizeof(a),0);
memset(b,sizeof(b),0);
for(int i=0,pos=s.size();i<s.size();i++,pos--)
a[pos]=s[i]-'0';
for(int i=0,pos=sx.size();i<sx.size();i++,pos--)
b[pos]=sx[i]-'0';
int jinwei=0,len=max(s.size(),sx.size());
for(int i=1;i<=len;i++)
{
ans[i]=(a[i]+b[i]+jinwei)%10;
jinwei=(a[i]+b[i]+jinwei)/10;
}
if(jinwei)
{
cout<<jinwei;
for(int i=len;i;i--)
cout<<ans[i];
}
else
for(int i=len;i;i--)
cout<<ans[i];
return 0;
}
快速读入
整数
inline void read(int &x){
x=0;int f=1;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-')
f=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9'){
x=(x<<1)+(x<<3)+(ch^48);
ch=getchar();
}
x*=f;
}
实数(注意输入必须要包含小数点)
inline void read(double &x){
x=0;int f=1;double y=1.0;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-')
f=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9'){
x=(x*10)+(ch^48);
ch=getchar();
}
ch=getchar();
while(ch>='0'&& ch<='9'){
x+=(y/=10)*(ch^48);
ch=getchar();
}
x*=f;
}
以上是关于常用模板汇总的主要内容,如果未能解决你的问题,请参考以下文章
[AndroidStudio]_[初级]_[配置自动完成的代码片段]