2020-02-12

资源分配问题

【问题描述】资源分配问题是将数量一定的一种或若干种资源(原材料、资金、设备或劳动力等),合理地分配给若干使用者,使总收益最大。
例如,某公司有3个商店A、B、C,拟将新招聘的5名员工分配给这3个商店,各商店得到新员工后,每年的赢利情况如下表所示,求分配给各商店各多少员工才能使公司的赢利最大?
在这里插入图片描述
#include

using namespace std;

#define MAX 30

int a[MAX][MAX] = { {0,3,7,9,12,13}, {0,5,10,11,11,11},{0,4,6,11,12,12} }, b[MAX] = { 0 }, c[MAX];
int n = 3, num = 0, V = 0, maxv = -1;

void bfs(int s)
{
if (s > n)
{
if (V > maxv)
{
for (int i = 1; i < s; i++)
c[i] = b[i];
maxv = V;
}
return;
}

for (int i = 0; i <= 5; i++)
{
	if ((num + i) > 5) continue;

	b[s] = i;
	num += i;
	V += a[s][i];

	bfs(s + 1);

	num -= i;
	V -= a[s][i];
	b[s] = 0;
}

}

int main()
{
bfs(1);

for (int i = 1; i < 4; i++)
	cout << c[i] << " ";

cout << maxv << endl;

return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值