用深搜做的为啥第二个点过不了求解
查看原帖
用深搜做的为啥第二个点过不了求解
427651
nekogeek楼主2020/11/25 16:02

直接上代码吧

#include <bits/stdc++.h>
using namespace std;
int q[5]={0};
int t[5][20]={0};
int minn;
int Count =0;
int sum1=0,sum2=0;
void dfs(int s,int step)
{
    if(step>q[s])
    {
        minn=min(minn,max(sum1,sum2));
        return ;
    }
    sum1+=t[s][step];
    dfs(s,step+1);
    sum1-=t[s][step];
    sum2+=t[s][step];
    dfs(s,step+1);
    sum2-=t[s][step];
    return ;
}
int main()
{
    for(int i=1;i<=4;i++)
    {
        cin>>q[i];
    }
    for(int i=1;i<=4;i++)
    {   
        minn=INT_MAX;
        for(int j=1;j<=q[i];j++)
        {
            cin>>t[i][j];
        }
        dfs(i,1);
        Count+=minn;
    }
    cout<<Count ;
    return 0;
}
2020/11/25 16:02
加载中...