P1025,萌新求助
查看原帖
P1025,萌新求助
485688
想吃小熊饼干楼主2021/8/7 13:12

rt,思路:将规模为(n,k)(n,k)的问题转化为规模(ni,k1)(n-i,k-1)的问题,其中ii为组合的第一个数。当k=2k=2时共有(n/2i+1)(n/2-i+1)种方案数.

代码:

#include<bits/stdc++.h>
using namespace std;
int n,k,ans;
void dfs(int m,int cnt,int ii)
{
    if(cnt==2)
    {ans+=m/2-ii+1;return;}
    for(int i=1;i<=m/cnt;i++)
    {
        dfs(m-i,cnt-1,i);
    }
    return;
}
int main()
{
    std::ios::sync_with_stdio(false);
    cin>>n>>k;
    dfs(n,k,1);
    cout<<ans;
    return 0;
}
2021/8/7 13:12
加载中...