注:代码有问题评论区里说
目录
1、代码
2、用法
1、代码
可根据实际情况修改
运行要求:#include<bits/stdc++.h> using namespace std;
namespace toolbox{//汇总成一个namespace,方便调用及代码美观
void read(int &x){//快读-只允许数字!
int back=0;
char tmp='a';
bool fushu=0;
while(!(tmp>='0'&&tmp<='9')){
tmp=getchar();
if(tmp=='-'){
fushu=1;
}
}
while(tmp>='0'&&tmp<='9'){
back=(back<<3)+(back<<1);
back+=tmp-'0';
tmp=getchar();
}
if(fushu){
x=-back;
}
else{
x=back;
}
}
void read_arr(int x[],int s,int e){//输入数组
for(int i=s;i<=e;i++){
read(x[i]);
}
}
void print_arr(int x[],int s,int e,string separate,string end_print){//输出数组
for(int i=s;i<=e;i++){
cout << x[i] << separate;
}
cout << end_print;
}
void Clear(int x[],int s,int e){//清空数组
for(int i=s;i<=e;i++){
x[i]=0;
}
}
int er_fen(int x[],int s,int e,int FIND){//二分
while(s<e){
// cout << s << "," << e << endl;
int mid=(s+e)/2;
if(x[mid]==FIND) return mid;
if(x[mid]>FIND){
e=mid-1;
}
else{
s=mid+1;
}
}
return -1;
}
int pow(int x,int y){//快速幂
int back=1;
while(y>0){
if(y%2==1){
back=(back*x);
}
y/=2;
x=(x*x);
}
return back;
}
bool sushu(int x){//素数判断
if(x<=1){
return 0;
}
for(int i=2;i<=sqrt(x);i++){
if(x%i==0){
return 0;
}
}
return 1;
}
void aishi(int n,bool x[]){//埃氏筛法
for(int i=2;i<=n;i++){
x[i]=1;
}
for(int i=2;i<=n;i++){
if(x[i]){
for(int j=2*i;j<=n;j+=i){
x[j]=0;
}
}
}
}
void Diff_arr(int yuan[],int diff_new[],int s,int e){//差分
for(int i=s;i<=e;i++){
if(i==0){
diff_new[i]=yuan[i];
}
else{
diff_new[i]=yuan[i]-yuan[i-1];
}
}
}
void Sum_arr(int yuan[],int sum_new[],int s,int e){//前缀和
for(int i=s;i<=e;i++){
if(i==0){
sum_new[i]=yuan[i];
}
else{
sum_new[i]=yuan[i]+sum_new[i-1];
}
}
}
int Sum(int x[],int s,int e){//数组区间求和
int back=0;
for(int i=s;i<=e;i++){
back+=x[i];
}
return back;
}
}
2、用法
2.1 read
功能:快读(int类型数字)
用法:read(变量名) 如:read(n);
2.2 read_arr
功能:快读数组(int类型数字)
用法:read_arr(数组名,开始下标,结束下标) 如:read_arr(a,1,n);
2.3 print_arr
功能:输出数组(int类型数字)
用法:print_arr(数组名,开始下标,结束下标,间隔的字符串,结束输出的字符串) 如:print_arr(a,1,n,",","\n");
注意:请使用string字符串格式!
2.4 Clear
功能:清空数组(int类型数字)
用法:Clear(数组名,开始下标,结束下标) 如:Clear(a,1,n);
2.5 er_fen
功能:二分法单调不下降数组找数字(int类型数字),有返回下标,无返回 -1
用法:er_fen(数组名,开始下标,结束下标,要找的数) 如:er_fen(a,1,n,2);
2.6 pow
功能:快速幂(int类型数字)
用法:pow(底数,次数) 如:pow(2,4);
2.7 sushu
功能:判断素数(int类型数字)
用法:sushu(要判断的数) 如:sushu(4)