174 条题解

  • 0
    @ 2025-3-10 20:59:21

    这道题非常的简单,但是我们可以使用不同的方法做,在完成题目的同时,也可以发散我们的思维。

    首先第一步:打头文件

    你既可以选择万能头文件#include<bits/stdc++.h>

    也可以选择一般头文件#include<iostream>

    第二步:补充

    using namespace std;

    第三步:写主函数

    int main()
    {
        return 0;
    }
    

    第四步:定义变量

    int a,b;.

    第五步:思考算法

    从这一步开始,你就要开始思考解决这道问题有哪些不同的算法,并开始付诸实践,请看下文。

    法一:直接输入A+BA+B,直接输出A+BA+B

    #include<iostream>
    using namespace std;
    int main()
    {
    int a,s;
    cin>>a>>s;
    cout<<a+s;
    return 0;
    }
    

    法二:利用循环解决

    #include<bits/stdc++.h>
    #define int long long
    using namespace std;
    const int maxn=100010;
    int a,b,n=1,c[maxn];
    signed main(){
    cin>>a>>b;
    for(int i=1;i<=n;i++){
    c[i]+=a+b;
    }
    cout<<c[1];
    }
    

    法三:利用栈解决 思路很明确,将AABB入栈,在计算的时候,弹出栈顶,计算。

    #include<bits/stdc++.h>
    #define int long long
    using namespace std;
    const int maxn=100010;
    stack<int> s;
    int a,b,n;
    signed main(){
    cin>>a>>b;
    s.push(a);
    s.push(b);
    while(!s.empty()){
    n+=s.top();
    s.pop();
    }
    cout<<n;
    }
    

    法四:利用队列解决 思路很简单,利用队列,输入的时候把AA入队BB,在使用的时候,弹出队头再计算。

    #include<bits/stdc++.h>
    #define int long long
    using namespace std;
    const int maxn=100010;
    queue<int> s;
    int a,b,n;
    signed main(){
    cin>>a>>b;
    s.push(a);
    s.push(b);
    while(!s.empty()){
    n+=s.front();
    s.pop();
    }
    cout<<n;
    }
    

    法五:利用双端队列解决 思路很清晰,将AABB一个加入队头,一个加入队尾,使用的时候,将两端分别弹出即可。

    #include<bits/stdc++.h>
    #define int long long
    using namespace std;
    const int maxn=100010;
    deque<int> s;
    int a,b,n;
    signed main(){
    cin>>a>>b;
    s.push_front(a);
    s.push_back(b);
    cout<<s.front()+s.back();
    }
    

    运用不同的方法,解决同一道题目,不仅是收获了快乐,更重要的是发散了思维,熟练了算法。

    信息

    ID
    56
    时间
    1000ms
    内存
    1024MiB
    难度
    1
    标签
    递交数
    10204
    已通过
    4606
    上传者