⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 工作安排.cpp

📁 经典算法之换位和工作安排
💻 CPP
字号:
#include <iostream.h>


void Swap(int &a ,int &b)
{
	int temp=a;a=b;b=temp;
}



void Perm(int list[],int k, int m,int &bestp,int bestList[])
{
	int work[3][3]={2,1,4,3,5,3,5,3,2};
	int currentp=0;
	if((k>=m)&&(list[m]>list[0]))
	{
		for(int i=0;i<m;i++)
		{
			cout<<list[i];
			currentp+=work[i][list[i]-1];
		}
		cout<<endl;
		if(currentp<bestp)
		{
			for(i=0;i<m;i++)
				bestList[i]=list[i];
			bestp=currentp;
		}
	}
	else
		for(int i=k;i<m;i++)
		{
			Swap(list[k],list[i]);
			Perm(list,k+1,m,bestp,bestList);
			Swap(list[k],list[i]);
		}
}



void main()
{
	int list[]={1,2,3},m=3;
	int bestp=100;
	int *bestList =new int [m];
	for(int i=0;i<m;i++)
		bestList[i]=0;
	Perm(list,0,m,bestp,bestList);
	cout<<"best price:"<<bestp<<endl;
	for(i=0;i<m;i++)
		cout<<"工作"<<i<<"由第"<<bestList[i]<<"来完成"<<endl;
}

⌨️ 快捷键说明

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