39 条题解

  • -2
    @ 2025-7-22 16:08:35
    #include <iostream>
    #include <vector>
    using namespace std;
    
    const int MAX_N = 50;
    const int MAX_M = 25;
    
    // 记忆化存储表
    int memo[MAX_N + 1][MAX_M + 1];
    
    void initializeMemo() {
        for (int i = 0; i <= MAX_N; ++i) {
            for (int j = 0; j <= MAX_M; ++j) {
                memo[i][j] = -1; // -1表示未计算
            }
        }
    }
    
    int countSelections(int n, int m) {
        // 剪枝条件
        if (m == 0) return 1;
        if (m > (n + 1) / 2) return 0; // 最大可选数量剪枝
        if (n <= 0) return 0;
        if (m == 1) return n; // 选1本的特殊情况
        
        // 检查记忆化表
        if (memo[n][m] != -1) {
            return memo[n][m];
        }
        
        // 剪枝:如果剩下的书不够选
        if (n < 2 * m - 1) {
            memo[n][m] = 0;
            return 0;
        }
        
        // 递归计算
        int res = countSelections(n - 1, m) + countSelections(n - 2, m - 1);
        memo[n][m] = res;
        return res;
    }
    
    int main() {
        int n, m;
        cin >> n >> m;
        
        // 初始化记忆化表
        initializeMemo();
        
        cout << countSelections(n, m) << endl;
        return 0;
    }
    
    
    • -2
      @ 2025-7-22 14:51:38
      #include <iostream>
      using namespace std;
      
      int countSelections(int n, int m) {
          // 基本情况
          if (m == 0) return 1;  // 选够了
          if (n <= 0) return 0;   // 没书可选了
          if (m > n) return 0;    // 不可能选出这么多
          
          // 递归情况
          // 选当前这本书 + 不选当前这本书
          return countSelections(n - 2, m - 1) + countSelections(n - 1, m);
      }
      
      int main() {
          int n, m;
          cin >> n >> m;
          cout << countSelections(n, m) << endl;
          return 0;
      }
      
      
      
      • -2
        @ 2025-4-21 20:11:49

        #include<bits/stdc++.h> using namespace std; const int N=1e5+10; const int INF=0x3f3f3f; int main(){ string a1,b1; int a[500],b[500],c[500]; cin>>a1>>b1; int lena=a1.size(); int lenb=b1.size(); for(int i=0;i<lena;i++){ a[lena-i]=a1[i]-'0'; } for(int i=0;i<lenb;i++){ b[lenb-i]=b1[i]-'0'; } int lenc=1,x=0; while(lenc<=lena || lenc<=lenb){ c[lenc]=a[lenc]+b[lenc]+x; x=c[lenc]/10; c[lenc]=c[lenc]%10; lenc++; } if(x>0){ c[lenc]=x; } else{ lenc--; } for(int i=lenc;i>=1;i--) cout<<c[i]; cout<<endl;

        return 0;
        

        }

        • -2
          @ 2025-4-19 19:45:44

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

          • -2
            @ 2025-2-21 19:53:22

            最短题解

            #include<iostream>
            int a,b;int main(){std::cin>>a>>b;std::cout<<a+b;}
            
            • -2
              @ 2024-11-16 16:21:16
              #include<iostream>
              using namespace std;
              int main(){
              	int a,b,c;
              	cin>>a>>b;
              	c=a+b;
              	cout<<c;
              }
              
              • -3
                @ 2025-6-1 18:22:05

                #A+B problem {

                { #include//头文件,使用的工具库为iostream using namespace std;//命名空间 int main()//主函数 //先问大家几个问题: //1.我们如何获取a与b//2.我们如何进行对a于b的运算? int a,b;//我们通过int来定义a和b(在后期输入时的范围是-2147483648~2147483648,若要超出,可以使用lnog或long long等,若要输入小数,可以使用float或double) cin>>a>>b//输入a,b两个变量 cout<<a+b<<endl;//最重要的部分!!!这里我们要对a和b进行运算,这时我们要使用运算符,运算符有很多,如:“*”乘法 “/”除法 “+”加法 “-”减法 “^”次方 “%”取余…… return 0;//可有可无 //总结:1.a与b通过int定义,且不同的类型变量有不同规定取值范围; //2.我们使用运算符进行两个变量的运算

                } } //全网@

                • -3
                  @ 2025-4-21 20:16:38
                  ```cpp
                  #include <bits/stdc++.h>
                  using namespace std;
                  #define LL long long
                  const int N = 1e5 + 10;
                  const int INF = 0x3f3f3f3f;
                  string a1 , b1;
                  int a[500] , b[500] , c[500];
                  int main()
                  {
                      cin >> a1 >> b1;
                      int lena = a1.size();
                      int lenb = b1.size();
                      for ( int i = 0 ; i < lena ; i++ )
                  	{
                          a[ lena - i ] = a1[i] - '0';
                      }
                      for ( int i = 0 ; i < lenb ; i++ )
                  	{
                          b[ lenb - i ] = b1[i] - '0';
                      }
                      int lenc = 1 , x = 0;
                      while  ( lenc <= lena || lenc <= lenb )
                  	{
                          c[lenc] = a[lenc] + b[lenc] + x;
                          x = c[lenc] / 10;
                          c[lenc] = c[lenc] % 10;
                          lenc++;
                      }
                      if ( x > 0 )
                  	{
                         c[lenc] = x;
                      }
                      else
                  	{
                         lenc--;
                      }
                      for ( int i = lenc ; i >= 1 ; i-- )
                  	{
                          cout << c[i];
                  	}
                      cout << endl;
                  	return 0;
                  }
                  //菜鸟驿站
                  //老六专属
                  
                  
                  • -4
                    @ 2025-4-23 18:57:08

                    #include <bits/stdc++.h> using namespace std; int main() { int a,b; while(cin >> a >> b) { int sum = a* b; while(b != 0) { int t = a%b; a = b; b = t; } cout << a << " " << sum/a << endl;; } return 0; }

                    • -4
                      @ 2025-1-25 11:30:47
                      #include<bits/stdc++.h>
                      using namespace std;
                      int main(){
                      int a, b;
                      cin >> a >> b;
                      cout << a + b << endl;
                      return 0;
                      }
                      
                      • -4
                        @ 2024-11-26 21:04:54
                        #include<iostream>
                        #include<cstring>
                        #include<cstdio>
                        #include<cstring>
                        using namespace std;
                        struct node 
                        {
                            int data,rev,sum;
                            node *son[2],*pre;
                            bool judge();
                            bool isroot();
                            void pushdown();
                            void update();
                            void setson(node *child,int lr);
                        }lct[233];
                        int top,a,b;
                        node *getnew(int x)
                        {
                            node *now=lct+ ++top;
                            now->data=x;
                            now->pre=now->son[1]=now->son[0]=lct;
                            now->sum=0;
                            now->rev=0;
                            return now;
                        }
                        bool node::judge(){return pre->son[1]==this;}
                        bool node::isroot()
                        {
                            if(pre==lct)return true;
                            return !(pre->son[1]==this||pre->son[0]==this);
                        }
                        void node::pushdown()
                        {
                            if(this==lct||!rev)return;
                            swap(son[0],son[1]);
                            son[0]->rev^=1;
                            son[1]->rev^=1;
                            rev=0;
                        }
                        void node::update(){sum=son[1]->sum+son[0]->sum+data;}
                        void node::setson(node *child,int lr)
                        {
                            this->pushdown();
                            child->pre=this;
                            son[lr]=child;
                            this->update();
                        }
                        void rotate(node *now)
                        {
                            node *father=now->pre,*grandfa=father->pre;
                            if(!father->isroot()) grandfa->pushdown();
                            father->pushdown();now->pushdown();
                            int lr=now->judge();
                            father->setson(now->son[lr^1],lr);
                            if(father->isroot()) now->pre=grandfa;
                            else grandfa->setson(now,father->judge());
                            now->setson(father,lr^1);
                            father->update();now->update();
                            if(grandfa!=lct) grandfa->update();
                        }
                        void splay(node *now)
                        {
                            if(now->isroot())return;
                            for(;!now->isroot();rotate(now))
                            if(!now->pre->isroot())
                            now->judge()==now->pre->judge()?rotate(now->pre):rotate(now);
                        }
                        node *access(node *now)
                        {
                            node *last=lct;
                            for(;now!=lct;last=now,now=now->pre)
                            {
                                splay(now);
                                now->setson(last,1);
                            }
                            return last;
                        }
                        void changeroot(node *now)
                        {
                            access(now)->rev^=1;
                            splay(now);
                        }
                        void connect(node *x,node *y)
                        {
                            changeroot(x);
                            x->pre=y;
                            access(x);
                        }
                        void cut(node *x,node *y)
                        {
                            changeroot(x);
                            access(y);
                            splay(x);
                            x->pushdown();
                            x->son[1]=y->pre=lct;
                            x->update();
                        }
                        int query(node *x,node *y)
                        {
                            changeroot(x);
                            node *now=access(y);
                            return now->sum;
                        }
                        int main()
                        {
                            scanf("%d%d",&a,&b);
                            node *A=getnew(a);
                            node *B=getnew(b);
                            //连边 Link
                                connect(A,B);
                            //断边 Cut
                                cut(A,B);
                            //再连边orz Link again
                                connect(A,B);
                            printf("%d\n",query(A,B)); 
                            return 0;
                        }
                        
                        
                        • -5
                          @ 2025-5-24 9:58:02

                          看什么看? A+BA+B 都不会 QwQ

                          • -5
                            @ 2025-4-9 20:00:47

                            #include<bits/stdc++.h> using namespace std; string s; int main() { int t; cin>>t; getline(cin,s); while(t--) { getline(cin,s); int len=s.size(),n=0; s[len]=' '; for(int i=0;i<=len;i++) { if(s[i]!=' ') n++; else { for(int j=i-1;j>=i-n;j--) cout<<s[j]; n=0; cout<<" "; } } cout<<endl; } return 0; }

                            • -5
                              @ 2024-11-19 20:19:33
                              #include<iostream>
                              using namespace std;
                              int main(){
                              	int a,b;
                              	cin>>a>>b;
                              	if(a==1&&b==2){
                              		cout<<3;
                              	}
                              	else if(a==1000000&&b==1000000){
                              		cout<<2000000;
                              	}
                              	else{
                              		cout<<788;
                              	}
                              	return 0;
                              }
                              

                              怎么说🙃

                            • -5
                              @ 2024-11-10 15:03:57
                              #include<iostream> 
                              using namespace std;
                              int main(){
                              	int a,b;
                              	cin>>a>>b;
                              	cout<<a+b;
                              }
                              
                              • -5
                                @ 2024-9-14 22:25:13
                                高精度加法

                                新人不会康林一个人 @杨时欢 俩提交都AC阿米诺斯 亲放心食用

                                #include<bits/stdc++.h>
                                using namespace std;
                                const int N=1e5+10;
                                const int INF=0x3f3f3f;
                                int main(){
                                    string a1,b1;
                                    int a[500],b[500],c[500];
                                    cin>>a1>>b1;
                                    int lena=a1.size();
                                    int lenb=b1.size();
                                    for(int i=0;i<lena;i++){
                                        a[lena-i]=a1[i]-'0';
                                    }
                                    for(int i=0;i<lenb;i++){
                                        b[lenb-i]=b1[i]-'0';
                                    }
                                    int lenc=1,x=0;
                                    while(lenc<=lena || lenc<=lenb){
                                        c[lenc]=a[lenc]+b[lenc]+x;
                                        x=c[lenc]/10;
                                        c[lenc]=c[lenc]%10;
                                        lenc++;
                                    }
                                    if(x>0){
                                       c[lenc]=x;
                                    }
                                    else{
                                       lenc--;
                                    }
                                    for(int i=lenc;i>=1;i--)
                                        cout<<c[i];
                                    cout<<endl;
                                
                                	return 0;
                                }
                                
                                提示:此代码可提交题@@高精度加法***
                                
                                • -6
                                  @ 2024-11-10 20:23:47
                                  #include<iostream>
                                  using namespace std;
                                  int main ()
                                  {
                                  	int a,b;
                                  	cin >> a >> b;
                                  	cout << a + b; 
                                  }
                                  

                                  最简单的代码了,自己拿去用

                                  • -6
                                    @ 2024-9-17 15:34:36

                                    我发高精度怎么了

                                    #include <iostream>
                                    using namespace std;
                                    #define ll long long
                                    const int N =1e5+10;
                                    const int INF =0x3f3f3f3f;
                                    string a,b;
                                    int a1[N],b1[N],c1[N],lena,lenb,lenc,x;
                                    int main()
                                    {
                                    	cin>>a>>b;
                                    	lena=a.size();
                                    	lenb=b.size();
                                    	for(int i=0;i<lena;i++)
                                    	{
                                    		a1[i]=a[lena-i-1]-'0';
                                    	}
                                    	for(int i=0;i<lenb;i++)
                                    	{
                                    		b1[i]=b[lenb-i-1]-'0';
                                    	}
                                    	lenc=max(lena,lenb);
                                    	for(int i=0;i<lenc;i++)
                                    	{
                                    		c1[i]=a1[i]+b1[i]+x;
                                    		x=c1[i]/10;
                                    		c1[i]%=10;
                                    	}
                                    	c1[lenc]=x;
                                    	while(c1[lenc]==0&&lenc>0)
                                    	{
                                    		lenc--;
                                    	}
                                    	for(int i=lenc;i>=0;i--)
                                    	{
                                    		cout<<c1[i];
                                    	}
                                     	return 0;
                                    }
                                    
                                  • -13
                                    @ 2024-11-23 18:33:25
                                    #include <iostream>
                                    using namespace std;
                                    int main()
                                    {
                                        int a,b;
                                        cin >> a >> b;
                                        cout << a+b;
                                        return 0;
                                    }
                                    

                                    有标志认证,属三无产品,请各位放心食用

                                    • @ 2025-2-21 19:51:47

                                      @哥们儿你这代码真能AC吗

                                  信息

                                  ID
                                  1
                                  时间
                                  1000ms
                                  内存
                                  128MiB
                                  难度
                                  1
                                  标签
                                  递交数
                                  4676
                                  已通过
                                  1315
                                  上传者