蒟蒻求助
查看原帖
蒟蒻求助
379113
dtrthg楼主2021/8/23 07:36

刚学回溯,被恶心死了嘤嘤嘤

#include <bits/stdc++.h>
using namespace std;
int s[10000010],f[10100][110],sum[10000010];
int le,leri,ans=1000000000,cnt;
void dfs(int now,int i)
{
	if(now>s[i])
	{
		leri=max(le,sum[i]-le);
		if(leri<ans) ans=leri;
		return ;
	}
	le+=f[i][now];
	dfs(now+1,i);
	le-=f[i][now];
}
int main()
{
	for(int i=1;i<=4;i++)
	{
		cin>>s[i];
	}
	for(int i=1;i<=4;i++)
	{
		le=0;
		for(int j=1;j<=s[i];j++)
		{
			cin>>f[i][j];
			sum[i]+=f[i][j];
		}
		dfs(1,i);
		cnt+=ans;
	}
	cout<<cnt<<endl;
	return 0;
}
2021/8/23 07:36
加载中...