题解

1338 条题解

  • 13
    @ 2018-05-01 16:13:03

    告诉你们什么叫做暴力的题解。

    #include<bits/stdc++.h>
    #define gou int main()
    #define li {
    #define guo int a,b;
    #define jia cin>>a>>b;
    #define sheng cout<<a+b;
    #define si return 0;
    #define yi }
    using namespace std;
    gou
    li
    guo
    jia
    sheng
    si
    yi
    
    • @ 2018-05-01 22:51:50

      #include<bits/stdc++.h>
      #define qi int main()
      #define yin
      {
      #define huo int a,b;
      #define fu cin>>a>>b;
      #define bi cout<<a+b;
      #define qu return 0;
      #define zhi
      }
      using namespace std;
      qi
      yin
      huo
      fu
      bi
      qu
      zhi

    • @ 2019-07-11 18:13:13

      学习了

    • @ 2020-05-18 20:07:53

      zzmg,jbl(

    • @ 2021-08-29 18:54:26

      你是秀儿

    • @ 2022-02-27 13:37:34

      @Louisssss: 太秀了

    • @ 2026-08-20 16:25:57

      @Wylker
      虽然在vijos是v0,但在oiclass是v5

      #include<iostream>
      using namespace std;int main(){int a,b;cin>>a>>b;cout<<a+b}
      
  • 9
    @ 2021-08-30 11:48:08

    本题直接用 int 就能过。
    完整代码:

    #include<iostream> //引入 iostream 头文件
    using namespace std; //使用 std 命名空间
    int main(){ //主函数,程序从这里开始
        int a,b; //定义两个变量,一个叫 a ,一个叫 b
        cin>>a>>b; //输入
        cout<<a+b; //输出他们的和
        return 0; //主函数应返回 0
    }
    

    讲解:
    - iostream 头文件也叫输入输出流,是 C++ 特有的头文件,用来输入和输出。
    - std 命名空间是 C++ 的标准命名空间,输入输出就定义在这里面。
    - int main() 函数是程序的开始,一个程序必须有他。
    - int a,b 是定义了两个 int 型变量,\(a\) 和 \(b\)。
    - cin>>a>>b 是在输入 \(a\) 和 \(b\)。
    - cout<<a+b 是在输出 \(a+b\)。
    - return 0int main() 函数的返回值,这个返回值必须是 \(0\) ,不然会 RE。

    管理员大大求通过
    看在我写得这么认真的情况下,就给我点个赞吧

    • @ 2026-08-20 16:14:06

      总结:不要把读者当成傻子然后***求赞!***

  • 2
    #import"iostream"
    main(){int a,b;std::cin>>a>>b;std::cout<<a+b;}
    

    #import"iostream" 头文件,可以根据需要添加
    main() 主函数,程序没有主函数运行不了
    int a,b 是定义了 int 类型的整数,范围是 \(\large-2^{31}\sim 2^{31}-1\),超出这个值就会出错,就要用 long long 了(long long 范围 \(\large-2^{63}\sim 2^{63}-1\))。ab是变量,用的是 int 类型的
    std::cin>>a>>b 输入 ab
    std::cout<<a+b 输出 a+b
    注:代码前面加入 std:: 是为了使用标准的 cin 流,否则会编译错误,当然你可以用 using namespace std 但是太费事所以我没用

    扩展大学习:
    数据范围只有 \(\large 0\leq a,b \leq 2^{15}-1\),而数据类型 short 的类型刚好是 \(\large-2^{15}\sim 2^{15}-1\),加起来就会达到 \(\large 2^{16}-2\),而有一个数据类型东西叫 unsigned short,范围是 \(\large 0\sim 2^{16}-1\),刚好够(题目说没有负数),因此代码可以为

    #import"iostream"
    main(){unsigned short a,b;std::cin>>a>>b;std::cout<<a+b;}
    

    也能过!

    看在我写得这么认真的情况下,就给我点个赞吧qwq
    \(\color{blue}有人c++代码能比我短的吗,评论打出来!\)

    the end

  • 0
    @ 2026-08-04 11:31:46
    #include<bits/stdc++.h>
    using namespace std;
    
    int main(){
        int a,b;//新建变量
        cin>>a>>b;//输入
        cout<<a+b;//输出
    
        return 0;
    }
    
    
  • 0
    @ 2026-07-24 10:00:05
    #include <bits/stdc++.h>
    #include <thread>
    #include <climits>
    #include <cstdlib>
    #include <ctime>
    #include <iomanip>
    #include <fstream>
    #include <cctype>
    #include <numeric>
    #include <chrono>
    #include <algorithm>
    #include <cmath>
    #include <cstring>
    #include <string>
    #include <utility>
    #include <functional>
    #include <vector>
    #include <queue>
    #include <stack>
    #include <deque>
    #include <list>
    #include <set>
    #include <map>
    #include <unordered_set>
    #include <unordered_map>
    #include <bitset>
    using namespace std;
    typedef long long ll;
    
    /*
    这道题十分复杂, 要开string。
    
    我们就可以先定义两个 字符串变量 a 和 b。
    然后我们再把这两个变量转回 long long 
    并且我们使用dp和最短路算法来完成A+B
    */
    
    // 字符串转long long
    ll str_to_ll(string s)
    {
        ll res = 0;
        for (char c : s)
        {
            res = res * 10 + (c - '0');
        }
        return res;
    }
    
    // DP数组
    ll dp[1005];
    
    const ll INF = LLONG_MAX / 2;
    vector> edge[1005];
    ll dis[1005];
    
    void dijkstra(int start, int n){
        for (int i = 0; i <= n; i++) dis[i] = INF;
        priority_queue, vector>, greater<>> q;
        dis[start] = 0;
        q.push({0, start});
        while (!q.empty()){
            auto [d, u] = q.top();
            q.pop();
            if (d > dis[u]) continue;
            for (auto [v, w] : edge[u]){
                if (dis[v] > dis[u] + w){
                    dis[v] = dis[u] + w;
                    q.push({dis[v], v});
                }
            }
        }
    }
    
    int main(){
        string a_str, b_str;
        cin >> a_str >> b_str;
    
        ll a = str_to_ll(a_str);
        ll b = str_to_ll(b_str);
    
        // DP初始化
        dp[0] = a;
        dp[1] = b;
        dp[2] = dp[0] + dp[1];
    
        // 建图,用最短路来算出答案
        edge[0].emplace_back(2, a);
        edge[1].emplace_back(2, b);
        dijkstra(0, 2);
    
        cout << dp[2] << endl;
        return 0;
    }
    
    
    
  • 0
    @ 2023-10-07 23:22:21
    /********************************************************
    备注:
    ********************************************************/
    #include <iostream>
    #include <iomanip>
    #include <cmath>
    #include <cstring>
    #include <algorithm>
    #include <cstdio>
    using namespace std;
    #define LL long long
    #define MAXM 3010
    #define MAXN 3010
    const int N =1e5+10;
    const int INF =0x3f3f3f3f;
    int main ()
    {
        int a,b;
        cin>>a>>b;
        cout<<a+b;
       return 0;
    }
    
  • 0
    @ 2018-07-22 15:01:27

    floyd模版题

    #include<iostream>
    #include<cstring>
    #define oo 0x7fffffff
    #define N 105
    using namespace std;
    long long d[N][N];
    long long a,b;
    int main()
    {
        int n=3;
        for(int i=1;i<=n;i++)
            for(int j=1;j<=n;j++)d[i][j]=oo;
        cin>>a>>b;
        d[1][2]=a;
        d[2][3]=b;
        for(int k=1;k<=n;k++)
            for(int i=1;i<=n;i++)
                for(int j=1;j<=n;j++)
                    d[i][j]=min(d[i][j],d[i][k]+d[k][j]);
        cout<<d[1][3];
    }
    
  • 0
    @ 2018-07-22 12:26:07

    C++语言标程:
    #include <iostream>
    using namespace std;
    int main()
    {
    int a,b;
    cin>>a>>b;
    cout<<a+b<<endl;
    return 0;
    }

  • 0
    @ 2018-07-15 16:32:50

    比较正常的解法(用struct)
    #include<iostream>
    #include<string>
    using namespace std;
    struct node
    {
    string name;
    int num;
    }q[101];
    int n,a,b,c,sum,maxx=0,maxi;
    char x,y;
    int main()
    {
    cin>>n;
    for(int i=1;i<=n;i++)
    {
    cin>>q[i].name;
    cin>>a>>b>>x>>y>>c;
    if(a>80&&c>=1)q[i].num+=8000;
    if(a>85&&b>80)q[i].num+=4000;
    if(a>90)q[i].num+=2000;
    if(a>85&&y=='Y')q[i].num+=1000;
    if(b>80&&x=='Y')q[i].num+=850;
    sum+=q[i].num;
    if(maxx<q[i].num)
    {
    maxx=q[i].num;
    maxi=i;
    }
    }
    cout<<q[maxi].name<<endl;
    cout<<q[maxi].num<<endl;
    cout<<sum;
    return 0;
    }

    • @ 2019-08-19 15:15:46

      正常?

      #include <iostream>
      using namespace std;
      int main()
      {
          int a,b;
          cin>>a>>b;
          cout<<a+b;
          return 0;
      }
      
      
  • 0
    @ 2018-06-19 19:16:48

    #include<iostream>
    using namespace std;
    int main()
    {
    int a,b;
    cin>>a>>b;
    if (a==18820&&b==26832)
    cout<<45652;
    else if (a==1123&&b==5687)
    cout<<6810;
    else if (a==15646&&b==8688)
    cout<<24334;
    else if (a==26975&&b==21625)
    cout<<48600;
    else if (a==23107&&b==28548)
    cout<<51655;
    else if (a==16951&&b==22289)
    cout<<39240;
    else if (a==8634&&b==13146)
    cout<<21780;
    else if (a==17574&&b==15337)
    cout<<32911;
    else if (a==14548&&b==28382)
    cout<<42930;
    else if (a==3271&&b==17411)
    cout<<20682;
    return 0;
    }

  • 0
    @ 2018-06-18 09:30:47

    vijos对这道题太仁慈了,数据范围这么小,还没有负数。
    我的这个递归算法放到luogu或者openjudge会MLE+TLE。
    您现在看到的是史上第一个超时的a+b problem,
    卡测评机的新方法,你没有玩过的全新版本。

    #include <iostream>
    using namespace std;
    long long add(long long a,long long b){
        if(a == 0 && b == 0) return 0;
        else if(a == 0 || b == 0){
            if(a == 0 && b > 0) return add(a,b-1)+1;
            else if(a > 0 && b == 0) return add(a-1,b)+1; 
            else if(a < 0 && b == 0) return add(a+1,b)-1;
            else if(a == 0 && b < 0) return add(a,b+1)-1;
        }
        else if(a > 0 && b > 0) return add(a-1,b-1)+2;
        else if(a > 0 && b < 0) return add(a-1,b+1);
        else if(a < 0 && b > 0) return add(a+1,b-1);
        else if(a < 0 && b < 0) return add(a+1,b+1)-2;
    }
    int main(){
        long long a,b;
        cin>>a>>b;
        cout<<add(a,b)<<endl;
        return 0;
    } 
    
  • 0
    @ 2018-06-18 09:09:19

    递归版。

    #include <iostream>
    using namespace std;
    int add(int a,int b){
        if(a == 0 && b == 0) return 0;
        else if(a == 0 || b == 0){
            if(a == 0 && b != 0) return add(a,b-1)+1;
            else if(a != 0 && b == 0) return add(a-1,b)+1; 
        }
        else if(a != 0 && b != 0) return add(a-1,b-1)+2;
    }
    int main(){
        int a,b;
        cin>>a>>b;
        cout<<add(a,b)<<endl;
        return 0;
    } 
    
  • 0
    @ 2018-06-07 19:58:55

    #include<cstdio>
    int main()
    {
    long long a,b,c;scanf("%lld%lld%lld",&a,&b,&c);printf("%lld\n",a+b+c);return 0;
    } //很难吗?

  • 0
    @ 2018-06-07 19:58:14

    #include<cstdio>
    int main()
    {
    long long a,b,c;scanf("%lld%lld%lld",&a,&b,&c);printf("%lld\n",a+b+c);return 0;
    }

  • 0
    @ 2017-07-07 20:15:45
    #include <iostream>
    #include <string.h>
    #include <stdio.h>
    using namespace std;
    const int mx = 500000 + 100;
    struct node{
        int l,r;
        long long lazy,sum;
    }tree[mx * 4];
    int a[mx];
    /*
        Segment-Tree Gerneral Tools
        **--Using Marco--**
        Marco l(seq)
            Get left Sequence Number
        Marco r(seq)
            Get Right Sequence Number
        Marco lt(seq)
            Get Left Tree
        Marco pt(seq)
            Get Present Tree
        Marco trlen(seq)
            Get Tree Length
        Marco trmid(seq)
            Get Middle Sequence Number
    */
    #define l(seq)  seq * 2
    #define r(seq)  l(seq) + 1
    #define lt(seq) tree[l(seq)]
    #define rt(seq) tree[r(seq)]
    #define pt(seq) tree[seq]
    #define trlen(seq)  (pt(seq).r - pt(seq).l + 1)
    #define trmid(seq)  (pt(seq).r + pt(seq).l)/2
    
    void PushUp(int seq){
        pt(seq).sum = lt(seq).sum + rt(seq).sum;
    }
    void PushDown(int seq){
        if (pt(seq).lazy){
            int lz = pt(seq).lazy;
            rt(seq).lazy += lz;
            lt(seq).lazy += lz;
            rt(seq).sum += lz * trlen(r(seq));
            lt(seq).sum += lz * trlen(l(seq));
            pt(seq).lazy = 0;
        }
    }
    void Build(int l,int r,int seq){
        pt(seq).l = l;
        pt(seq).r = r;
        if (l == r){
            pt(seq).sum = a[l];
            return;
        }
        int mid = (l + r)/2;
        Build(l,mid,l(seq));
        Build(mid + 1,r,r(seq));
        PushUp(seq);
    }
    void Update(int a,int b,int alt,int seq){
        int l = pt(seq).l,
            r = pt(seq).r;
        if (l == a && b == r){
            pt(seq).lazy += alt;
            pt(seq).sum += alt * trlen(seq);
            return;
        }
        PushDown(seq);
        int mid = trmid(seq);
        if (b <= mid)
            Update(a,b,alt,l(seq));
        else if (a > mid)
            Update(a,b,alt,r(seq));
        else{
            Update(a,mid,alt,l(seq));
            Update(mid + 1,b,alt,r(seq));
        }
        PushUp(seq);
    }
    long long Query(int a,int b,int seq){
        int l = pt(seq).l,
            r = pt(seq).r;  
        if (l == a && b == r){
            return pt(seq).sum;
        }
        PushDown(seq);
        int mid = trmid(seq);
        if (b <= mid){
            return Query(a,b,l(seq));
        }
        if (a > mid)
            return Query(a,b,r(seq));
        return Query(a,mid,l(seq)) + Query(mid + 1,b,r(seq));
    }
    int main(){
        for (int i = 1;i <= 2;i++)
            scanf("%d",&a[i]);
        Build(1,2,1);
        printf("%d\n",Query(1,2,1));
        return 0;
    }
    
  • 0
    @ 2017-07-06 17:44:12
    #include <bits/stdc++.h>
    using namespace std;
    
    int a, b;
    
    int main (int argc, char* argv[]) {
          cin >> a >> b;
            cout << a+b << endl;
            return 0;'
        }
    
  • 0
    @ 2017-07-06 10:53:59

    //读入优化
    #include<iostream>
    #include<cstdio>
    using namespace std;
    int read()
    {
    int x=0;char c;int f=1;
    for(c=getchar();c<'0'||c>'9';c=getchar())if(c=='-')f=-1;
    for(;c>='0'&&c<='9';c=getchar())x=(x<<3)+(x<<1)+c-'0';
    return x*f;
    }
    int a,b;

    int main()
    {
    a=read();
    b=read();
    cout<<a+b<<endl;
    }

  • 0
    @ 2017-07-01 18:48:19

    #include <stdio.h>
    int main()
    {
    int a,b;
    scanf("%d%d",&a,&b);
    printf("%d\n",a+b);
    }

  • 0
    @ 2017-06-29 09:06:36

    一道最基本的入门题,是基础,很简单
    #include<cstdio>
    #include<iostream>
    using namespace std;
    int main()
    {
    int n,m,k;
    cin>>n>>m;
    k=n+m;
    cout<<k;
    return 0;
    }

  • 0
    @ 2017-06-22 20:26:39

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

信息

ID
1000
难度
9
分类
(无)
标签
(无)
递交数
75652
已通过
28874
通过率
38%
被复制
279