2 条题解

  • 0
    @ 2024-3-10 17:59:50
    using namespace std;
    int ans;
    
    void d(int n,int k,int pre) {
    	if(k == 0)
        {
    		if(n == 0)
    		{   
                ans++;
            }
            return;
    	}
    	for(int i = pre;i <= n;i++)
    		d(n - i,k - 1,i);
    }
    int main()
    {
        int n,k;
    	cin >> n >> k; 
    	d(n,k,1);
    	cout << ans;
    	return 0;
    }
    
    • 0
      @ 2024-2-1 10:29:29
      #include <iostream>
      #include<bits/stdc++.h>
      using namespace std;
      int n,k;
      int a[25];
      int cnt;
      void dfs(int step, int last, int sum){
          if(sum==0){
              if(step==k+1)
                  cnt++;
              return ;
          }
          if(step>k) return;
          if(sum<k-step+1) return;
          for(int i=last; i<=sum; i++)
              dfs(step+1,i,sum-i);
      }
      int main(){
          cin>>n>>k;
          dfs(1,1,n);
          cout<<cnt;
          return 0;
      }
      
      • 1

      信息

      ID
      364
      时间
      1000ms
      内存
      512MiB
      难度
      6
      标签
      递交数
      132
      已通过
      43
      上传者