ACdream 暴力專場F

跟校賽的那道質數搜索類似.

求一個數可以由多少k個數相加組成.

從大到小搜索一遍就可以了.並且正好符合他的條件,學習了.

#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int n,k;
int ans;
void dfs(int id, int sum,int cnt)
{
    if (sum == n&&cnt<=k)
    {
        ans++;
        return;
    }
    if (cnt > k)
        return;
    if (sum > n)
        return;
    for (int i = id; i >=0; i--)
        dfs(i, sum + i, cnt + 1);
}
int main()
{
    int t;
    cin >> t;
    while (t--)
    {
        scanf("%d%d", &n, &k);
        ans = 0;
        dfs(n, 0, 0);
        printf("%d\n", ans);
    }
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章