搜索与回溯 5.6
来源:互联网 发布:智能垃圾桶 知乎 编辑:程序博客网 时间:2024/05/21 01:44
题目叙述:
设有A,B,C,D,E 5人从事j1,j2,j3,j4,j5 5项工作每人只能从事一项,它们的效益表如下:
j1 j2 j3 j4 j5
A 13 11 10 4 7
B 13 10 10 8 5
C 5 9 7 7 4
D 15 12 10 11 5
E 10 11 8 8 4
求最佳安排,使效益最高。
这是一道水题
此题先将数组f都设为false(没做)。
然后搜索里判断是否已经做完,如做完就将此次的效率取大值,再将没人做的任务存放起来。
然后因为此题只有5个任务,所以直接for i:=1 to 5判断每一种情况,如果if f[i]=true就是这个任务已经有人做了,就不用判断。如果这个任务没人做过,就进行下一次的搜索。
最后再将每人做什么任务,和最终的效率求出来即可。
代码如下:
const a:array[1..5,1..5]of longint=((13,11,10,4,7),(13,10,10,8,5),(5,9,7,7,4),(15,12,10,11,5),(10,11,8,8,4));var maxl,y:array[1..5]of longint; f:array[1..5]of boolean; ans,i:longint;procedure dfs(l,x:longint);var i:longint;begin if l>5 then begin if x>ans then begin ans:=x; maxl:=y; end; exit; end; for i:=1 to 5 do if f[i]=false then begin y[l]:=i; f[i]:=true; dfs(l+1,x+a[l,i]); f[i]:=false; end;end;begin fillchar(f,sizeof(f),false); dfs(1,0); for i:=1 to 5 do write(chr(i+64),': J',maxl[i],' '); writeln; write(ans);end.
2 0
- 搜索与回溯 5.6
- 搜索与回溯 心得
- 搜索与回溯
- 搜索与回溯 字符序列
- 搜索与回溯5.6——工作效益
- 回溯法搜索总结与常见问题
- 穷举搜索:回溯与深搜
- 搜索与回溯5.2——排列
- 搜索与回溯 上机训练 4
- 搜索与回溯 6.装载问题
- 搜索与回溯 最佳调度问题
- 浅谈回溯与深度优先搜索
- 搜索-回溯
- C++搜索与回溯算法之红与黑
- 栈:深度优先搜索与回溯算法求解迷宫
- 1006.Team Rankings 栈与回溯 简单 5!搜索
- 五星填数与深度优先搜索回溯思想
- 搜索与回溯5.3——自然数拆分
- token 验证
- Eclipse中Latex配置
- STM32之GPIO按键实验
- C语言再学习 -- Linux下find命令用法
- CAShapeLayer 自定义圆角
- 搜索与回溯 5.6
- DLL动态库的创建与使用
- 算法
- Java基础 - 红黑树
- 我不要百花齐放,给我一个花盆就好
- Mac上使用Charles对https请求抓包--安装Root Certificate
- java实现远程控制应用
- dpdk环境搭建之使能额外功能
- linux 装redis