网友您好, 请在下方输入框内输入要搜索的题目:

题目内容 (请给出正确答案)

阅读以下说明和C程序,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

假设需要将N个任务分配给N个工人同时去完成,每个人都能承担这N个任务,

但费用不同。下面的程序用回溯法计算总费用最小的一种工作分配方案,在该方案中,为每个人分配1个不同的任务。

程序中,N个任务从0开始依次编号,N个工人也从0开始依次编号,主要的变量说明如下:

c[i][j]:将任务i分配给工人j的费用;

task[i]:值为0表示任务i未分配,值为j表示任务i分配给工人j;

worker[k]:值为0表示工人k未分配任务,值为1表示工人k已分配任务;

mincost:最小总费用。

【C程序】

#include<stdio.h>

#define N 8 /*N表示任务数和工人数*/

int c[N][N];

unsigned int mincost=65535; /*设置min的初始值,大于可能的总费用*/

int task[N],temp[N],workerIN];

void Plan(int k,unsigned Int cost)

{ int i;

if ((1)&&cost<mincost){

mincost=cost;

for (i=0;i<N;i++) temp[i]:task[i];

}

else{

for(i=0;i<N;i++) /*分配任务k*/

if (worker[i]=0&&(2)){

worker[i]=1; task[k]=(3);

Plan((4),cost+c[k][i]);

(5); task[k]=0;

}/*if*/

}

}/*Plan*/

void 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++)

scanf ("%d",&c[i][j]);

}

Plan (0,0); /*从任务0开始分配*/

printf("\n最小费用=%d\n",mincost);

for(i二0;i<N;i++)

pnntf("Task%d iB assigned toWorker%d\n",i,temp[i]);

}/*main*/


参考答案

更多 “ 阅读以下说明和C程序,将应填入(n)处的字句写在答题纸的对应栏内。【说明】假设需要将N个任务分配给N个工人同时去完成,每个人都能承担这N个任务,但费用不同。下面的程序用回溯法计算总费用最小的一种工作分配方案,在该方案中,为每个人分配1个不同的任务。程序中,N个任务从0开始依次编号,N个工人也从0开始依次编号,主要的变量说明如下:c[i][j]:将任务i分配给工人j的费用;task[i]:值为0表示任务i未分配,值为j表示任务i分配给工人j;worker[k]:值为0表示工人k未分配任务,值为1表示工人k已分配任务;mincost:最小总费用。【C程序】#include<stdio.h>#define N 8 /*N表示任务数和工人数*/int c[N][N];unsigned int mincost=65535; /*设置min的初始值,大于可能的总费用*/int task[N],temp[N],workerIN];void Plan(int k,unsigned Int cost){ int i;if ((1)cost<mincost){mincost=cost;for (i=0;i<N;i++) temp[i]:task[i];}else{for(i=0;i<N;i++) /*分配任务k*/if (worker[i]=0(2)){worker[i]=1; task[k]=(3);Plan((4),cost+c[k][i]);(5); task[k]=0;}/*if*/}}/*Plan*/void 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++)scanf ("%d",c[i][j]);}Plan (0,0); /*从任务0开始分配*/printf("\n最小费用=%d\n",mincost);for(i二0;i<N;i++)pnntf("Task%d iB assigned toWorker%d\n",i,temp[i]);}/*main*/ ” 相关考题
考题 阅读下面的说明,回答问题1~问题4,将解答填入答题纸对应的解答栏内。[说明]阅读以下说明,回答问题1~问题4,将解答填入答题纸对应的解答栏内。windows Server 2003是一个多任务多用户的操作系统,能够以集中或分布的方式实现各种应用服务器角色,是目前应用比较广的操作系统之一。Windows内置许多应用服务功能,将下表中(1)~(5)处空缺的服务器名称填写在答题纸对应的解答栏内。(1)

考题 阅读下列程序说明和C++程序,把应填入其中(n)处的字句,写在对应栏内。【说明】阅读下面几段C++程序回答相应问题。比较下面两段程序的优缺点。①for (i=0; i<N; i++ ){if (condition)//DoSomething…else//DoOtherthing…}②if (condition) {for (i =0; i<N; i++ )//DoSomething}else {for (i=0; i <N; i++ )//DoOtherthing…}

考题 ●试题二阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】该程序运行后,输出下面的数字金字塔【程序】includestdio.hmain (){char max,next;int i;for(max=′1′;max=′9′;max++){for(i=1;i=20- (1) ;++i)printf(" ");for(next= (2) ;next= (3) ;next++)printf("%c",next);for(next= (4) ;next= (5) ;next--)printf("%c",next);printf("\n");}}

考题 试题三(共 15 分)阅读以下说明和 C 程序,将应填入 (n) 处的字句写在答题纸的对应栏内。

考题 图2-1是基于软交换的网络分层模型。请将选项应填入(n)处的字句写在答题纸对应的解答栏内。

考题 (a)智能网概念模型中分布功能平面模型如下图所示,请根据此图将应填入(n)处的 字句写在答题纸的对应栏内。

考题 ()阅读下列说明和C语言程序,将应填入 (n)处的语句写在答题纸的对应栏内。[说明]下面程序是一个带参数的主函数,其功能是显示在命令行中输入的文本文件内容。[C语言函数]#include"stdio.h"main(argc,argv) int argc; char *argv[]; { (1) ; if((fp=fopen(argv[1],”r’’))== (2) ) { printf(”file not open!\n”);exit(0);} while( (3) ) putchar( (4) ); (5); }

考题 图6-1是下一代网络的体系结构简图,请根据此简图将应填入(n)处的字句写在答题纸的对应栏内。

考题 阅读下列说明和C++-代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某发票(lnvoice)由抬头(Head)部分、正文部分和脚注(Foot)部分构成。现采用装饰(Decorator)模式实现打印发票的功能,得到如图5-1所示的类图。 【C++代码】 #include using namespace std; class invoice{ public: (1){ cout

考题 阅读下列说明和?C++代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 阅读下列说明和?Java代码,将应填入?(n)?处的字句写在答题纸的对应栏内。 【说明】 某快餐厅主要制作并出售儿童套餐,一般包括主餐(各类比萨)、饮料和玩具,其餐品种 类可能不同,但其制作过程相同。前台服务员?(Waiter)?调度厨师制作套餐。现采用生成器?(Builder)?模式实现制作过程,得到如图?6-1?所示的类图。