试题四 (一个DFS题,看懂题意就可以做出来)
/**//* [说明] 假设需要将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 <iostream> #define N 4 /*N表示任务数和工人数*/ int c[N][N]; unsigned int mincost = 65535; /**//*设置min的初始值,大于可能的总费用*/ int task[N],temp[N],worker[N]; void plan(int k,unsigned int cost) { int i; //if(_____(1)_____&& cost < mincost) if(k==N && 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 && cost+c[k][i]<mincost) //if ( worker [i]==0 && ___(2)_____) // { //worker[i] = 1;task[k]=___(3)_____;//i //plan(_____(4)_____,cost+c[k][i]);//k+1 //______(5)_______; task [k] = 0;//worker[i]=0 worker[i]=1;task[k]=i; plan(k+1,cost+c[k][i]); worker[i]=0; task[k]=0; } /**//*if*/ } } /**//*Plan*/
int main () { int i,j; freopen("in.cpp","r",stdin); 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 ++) printf ("Task%d is assigned to Worker%d\n",i,temp[ i ]); return 0; }/**//*main*/
试题五
#include <iostream> //[代码5-1] class Circle : public___(1)____{ //Shape private: _______(2)________m_circle; //XCircle public: void display(){ m_circle._____(3)_____;//displayIt() } };
//[代码5-2] class Factory{ public : _____(4)_____getShapeInstance(int type){ //生成特定类实例 //Shape * switch (type){ case 0: return new point; case 1: return new Rectangle; case 2: return new line; case 3: return new Circle; default: return NULL; } } }; void main (int argc , char *argv[]){ if (argc ! =2){ cout << “error parameters !”<<endl; return; } int type = atoi (argv[ l ]); Factory factory; Shape *s; s = factory._____(5)____;//getShapeInstance(type) if (s ==NULL){ cout <<”Error get the instance !” << endl; return; } c->display(); __(6)___; //delete s return; }
第6空没注意,想了半天 ...~
|
|
随笔:5
文章:28
评论:1
引用:0
| 日 | 一 | 二 | 三 | 四 | 五 | 六 |
---|
27 | 28 | 29 | 30 | 31 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|
公告
Blog里的内容如果没有注明为转载,就是原创文章,需要转载的朋友请注明出处。文章中如有错误,请指出。转载内容如果有侵权行为,请与我联系,----issac_asimoy@qq.com。
常用链接
留言簿(1)
随笔分类(5)
随笔档案(5)
文章分类(28)
文章档案(28)
相册
My World
Study Web
最新随笔
搜索
积分与排名
最新评论
阅读排行榜
评论排行榜
|
|