算法【模板】

正好最近和队友决定再过一遍基础,那就用这个博客这个记录一下吧

part one : 高精度部分

791. 高精度加法 - AcWing题库

复制代码
#include<iostream>
#include<vector>
using namespace std;
const int N=100010;
string a,b;
vector<int> A,B;
vector<int> add(vector<int> &A,vector<int> &B){
    vector<int> C;
    if(A.size()<B.size()) return add(B,A);
    int t=0;
    for(int i=0;i<A.size();i++){
        t+=A[i];
        if(i<B.size()) t+=B[i];
        C.push_back(t%10);
        t/=10;
    }
    if(t) C.push_back(1);
    return C;
}

signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);
    cin>>a>>b;
    for(int i=a.size()-1;i>=0;i--) A.push_back(a[i]-'0');
    for(int i=b.size()-1;i>=0;i--) B.push_back(b[i]-'0');
    auto C = add(A,B);
    for(int i=C.size()-1;i>=0;i--) cout<<C[i];
    
    return 0;
}
复制代码

 792. 高精度减法 - AcWing题库

复制代码
#include<iostream>
#include<vector>
using namespace std;
string a,b;
vector<int> A,B;
bool cmp(vector<int> &A,vector<int> &B){
    if(A.size()!=B.size()) return A.size()>B.size();
    for(int i=A.size()-1;i>=0;i--){
        if(A[i]!=B[i]) return A[i]>B[i];
    } 
    return true;
}
vector<int> sub(vector<int> &A,vector<int> &B){
    vector<int> C;
    int t=0;
    for(int i=0;i<A.size();i++){
        t=A[i]-t;
        if(i<B.size()) t-=B[i];
        C.push_back((t+10)%10);
        if(t<0) t=1;
        else t=0;
    }
    while(C.size()>1 && C.back()==0) C.pop_back();
    return C;
}

signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);
    cin>>a>>b;
    for(int i=a.size()-1;i>=0;i--) A.push_back(a[i]-'0');
    for(int i=b.size()-1;i>=0;i--) B.push_back(b[i]-'0');
    if(cmp(A,B)){
        auto C = sub(A,B);
        for(int i=C.size()-1;i>=0;i--) cout<<C[i];
    }else{
        auto C = sub(B,A);
        cout<<"-";
        for(int i=C.size()-1;i>=0;i--) cout<<C[i];
    }
    
    return 0;
}
复制代码

 793. 高精度乘法 - AcWing题库

复制代码
#include<iostream>
#include<vector>
using namespace std;
string a,b;
vector<int> A,B;
vector<int> mul(vector<int> &A,vector<int> &B){
    vector<int> C(A.size()+B.size()+5,0);
    for(int i=0;i<A.size();i++)
        for(int j=0;j<B.size();j++) C[i+j]+=A[i]*B[j];
    int t=0;
    for(int i=0;i<C.size();i++){
        t+=C[i];
        C[i]=t%10;
        t/=10;
    }
    while(C.size()>1 && C.back()==0) C.pop_back();
    return C;
}
signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);
    cin>>a>>b;
    for(int i=a.size()-1;i>=0;i--) A.push_back(a[i]-'0');
    for(int i=b.size()-1;i>=0;i--) B.push_back(b[i]-'0');
    auto C = mul(A,B);
    for(int i=C.size()-1;i>=0;i--) cout<<C[i];
    
    return 0;
}
复制代码

 794. 高精度除法 - AcWing题库

复制代码
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
string a;
int b,r=0;
vector<int> A;
vector<int> div(vector<int> &A,int b,int &r){
    vector<int> C;
    int t=0;
    for(int i=0;i<A.size();i++){
        r=r*10+A[i];
        C.push_back(r/b);
        r%=b;
    }
    reverse(C.begin(),C.end());
    while(C.size()>1 && C.back()==0) C.pop_back();
    return C;
}
signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);
    cin>>a>>b;
    for(int i=0;i<a.size();i++) A.push_back(a[i]-'0');
    auto C = div(A,b,r);
    for(int i=C.size()-1;i>=0;i--) cout<<C[i];
    cout<<"\n"<<r<<endl;
    
    return 0;
}
复制代码

part tow : 快速排序部分 

785. 快速排序 - AcWing题库

复制代码
#include<iostream>
using namespace std;
const int N=100010;
int n,q[N];
void quick_sort(int q[],int l,int r){
    if(l>=r) return;
    int x=q[(l+r)>>1],i=l-1,j=r+1;
    while(i<j){
        do i++; while(q[i]<x);
        do j--; while(q[j]>x);
        if(i<j) swap(q[i],q[j]);
    }
    quick_sort(q,l,j);
    quick_sort(q,j+1,r);
}
signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0);cout.tie(0);
    cin>>n;
    for(int i=0;i<n;i++) cin>>q[i];
    quick_sort(q,0,n-1);
    for(int i=0;i<n;i++) cout<<q[i]<<" ";
    
    return 0;
}
复制代码

 

posted @   ACCbulb  阅读(3)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示