gongzuofenpei.c

来自「包括GRAY码」· C语言 代码 · 共 45 行

C
45 行
字号
#include<stdio.h>
#define N 8
int c[N][N];
unsigned int mincost=65535;
int task[N],temp[N],worker[N];
void plan(int k,unsigned int cost)
{
	int i;
	if(k==N&&cost<mincost)
	{
		mincost=cost;
		for(i=0;i<N;i++)
			temp[i]=task[i];
	}
	else{
		for(i=0;i<N;i++)
			if(worker[i]==0&&cost+c[k][i]<mincost)
			{
				worker[i]=1;
				task[k]=i;
				plan(k+1,cost+c[k][i]);
				worker[i]=0;
				task[k]=0;
			}
	}
}

int main()
{
	int i,j;
	for(i=0;i<N;i++)
	{
		worker[i]=0;
		task[i]=0;
		temp[i]=0;
		for(j=0;j<N;j++)
		{   printf("input data:");
		scanf("%d",&c[i][j]);}
	}
	plan(0,0);
	printf("\n最小差用=%d\n",mincost);
	for(i=0;i<N;i++)
		printf("task %d is assigned to worker%d\n",i,temp[i]);

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?