1 条题解

  • 0
    @ 2025-10-8 16:51:37
    #include<bits/stdc++.h>
    using namespace std;
    int a[110], S, n, ans;
    void dfs(int x, int sum)
    {
        if(x == n)
        {
            if((S - sum) >= a[x - 1]) ans++;
        }
        else
        {
            for(int i = a[x - 1]; i <= (S - sum) / (n - x + 1); i++)
            {
                a[x] = i;
                dfs(x + 1, sum + i);
                a[x] = 0;
            }
        }
    }
    int main()
    {
        int t; scanf("%d\n", &t);
        while(t--)
        {
            scanf("%d%d", &S, &n);
            memset(a, 0, sizeof(a));
            ans = 0; dfs(1, 0);
            printf("%d\n", ans);
        }
        return 0;
    }
    
    • 1

    信息

    ID
    291
    时间
    1000ms
    内存
    128MiB
    难度
    7
    标签
    递交数
    192
    已通过
    49
    上传者