dfs

 这份代码终于理解了dfs 

#include <iostream>
#include <cmath>

using namespace std;

float a[100 + 10];
int b[100 + 10];
int ans = 0;
int N = 0;
void dfs(double sum = 0,int val = 0,int st = 0,int deep = 0)
{
    //if ((int)sum == int)(ceil(sum)) && (int)sum%5 == 0)
    if(int(sum) == int(ceil(sum)) && int(sum)%5==0)
    {
        ans = max(ans,val);
    }
    if (deep >= 3)
        return;
    for (int i = st+1;i<=N;i++)
    {
        dfs(sum + a[i],val+b[i],i,deep+1);
    }
}

int main()
{
    int Q;
    while (~scanf("%d",&Q))
    {
        //int n;
        while (Q--)
        {
            ans = 0;
            scanf("%d",&N);
            for (int i = 1;i<=N;i++)
            {
                scanf("%f %d",&a[i],&b[i]);
            }    
            dfs();
            printf("%d
",ans);
        }
    
    }    
} 
爱程序 不爱bug 爱生活 不爱黑眼圈 我和你们一样 我和你们不一样 我不是凡客 我要做geek
原文地址:https://www.cnblogs.com/yifi/p/6491206.html