2 条题解

  • 1
    @ 2024-1-13 10:18:16

    递归一下就可以了,炒鸡简单 但我的代码一般别人看不懂

    #include<bits/stdc++.h>
    using namespace std;
    int n,m,sum;
    void dfs(const int t,const int s,const int jsq)
    {
      if(jsq==m-1)
      {
      	++sum;
      	return;
      }
      if(jsq==m-2)
      for(int i=t;i<=s/2;++i)
      dfs(i,s-i,jsq+1);
      else
      for(int i=t;i<=s;++i)
      dfs(i,s-i,jsq+1);
    }
    int main()
    {
      cin>>n>>m;
      dfs(1,n,0);
      cout<<sum;
      return 0;
    }
    
    • 0
      @ 2025-7-4 16:00:54
      #include<bits/stdc++.h>
      long long n,m,f[305][10];
      using namespace std;
      int hf(int x,int y){
      	if(y>x)return 0;
      	if(x==y)return 1;
      	if(y==1)return 1;
      	return hf(x-1,y-1)+hf(x-y,y);
      }
      int main(){
      	cin>>n>>m;
      	f[1][1]=1;
      	f[0][1]=1;
      	for(int i=1;i<=n;i++){
      		for(int j=1;j<=m;j++){
      			if(j>i)f[i][j]=0;
      			else if(i==j)f[i][j]=1;
      			else if(j==1)f[i][j]=1;
      			else f[i][j]=f[i-1][j-1]+f[i-j][j];
      		}
      	}
      	cout<<f[n][m];
      	return 0;
      }
      
      • 1

      信息

      ID
      567
      时间
      1000ms
      内存
      256MiB
      难度
      4
      标签
      (无)
      递交数
      45
      已通过
      23
      上传者