问题描述:在一个有m×n个方格的棋盘中,每个方格中有一个正整数.现要从方格中取数,使任意两个数
算法设计:对于给定的方格棋盘,按照取数要求找出总和最大的数.
数据输入:由文件input.txt提供输入数据.文件第1行有2个正整数m和n,分别表示棋盘的行数和列数.接下来的m行,每行有n个正整数,表示棋盘方格中的数.
结果输出:将取数的最大总和输出到文件output.txt.
算法设计:对于给定的方格棋盘,按照取数要求找出总和最大的数.
数据输入:由文件input.txt提供输入数据.文件第1行有2个正整数m和n,分别表示棋盘的行数和列数.接下来的m行,每行有n个正整数,表示棋盘方格中的数.
结果输出:将取数的最大总和输出到文件output.txt.
算法设计:设计一个解n后问题的队列式分支限界法,计算在n×n个方格上放置彼此不受攻击的n个皇后的一个放置方案.
数据输入:由文件input.txt给出输入数据.第1行有1个正整数n.
结果输出:将计算的彼此不受攻击的n个皇后的一个放置方案输出到文件output.txt文件的第1行是n个皇后的放置方案.
算法设计:对于给定的罗密欧与朱丽叶的迷宫,计算罗密欧通向朱丽叶的所有最少转弯道路.
数据输入:由文件input.txt给出输入数据.第1行有3个正整数n、m、k,分别表示迷宫的行数、列数和封闭的房间数.接下来的k行中,每行2个正整数,表示被封闭的房间所在的行号和列号.最后的2行,每行也有2个正整数,分别表示罗密欧所处的方格(p,q)和朱丽叶所处的方格(r,s).
结果输出:将计算的罗密欧通向朱丽叶的最少转弯次数和有多少条不同的最少转弯道路输出到文件output.txt.文件的第1行是最少转弯次数.第2行是不同的最少转弯道路数.接下来的n行每行m个数,表示迷宫的一条最少转弯道路.A[i][j]=k表示第k步到达方格(i,j):A[i][j]=-1表示方格(i,j)是封闭的.
如果罗密欧无法通向朱丽叶,则输出“NoSolution!".
算法设计:设计一个拉斯维加斯算法,对于给定的自然数n(1≤n≤100)计算在n×n个方格组成的棋盘上最少要放置多少个皇后才能控制棋盘上的所有方格,且放置的皇后互不攻击.
数据输入:由文件input.txt给出输入数据.第1行有1个正整数n.
结果输出:将计算的最少皇后数及最佳放置方案输出到文件output.txt.文件的第1行是最少皇后数:接下来的1行是皇后的最佳放置方案.
印制电路板将布线区域划分成n×m个方格阵列(见图6-3(a).精确的电路布线问题要求确定连接方格a的中点到方格b的中点的最短布线方案.在布线时,电路只能沿直线或直角布线(见图6-3(b).为了避免线路相交,已布线了的方格做了封锁标记,其他线路不允许穿过被封锁的方格.
算法设计:对于给定的布线区域,计算最短布线方案.
数据输入:由文件input.txt给出输入数据.第1行有3个正整数n、m.k,分别表示布线区域方格阵列的行数、列数和封闭的方格数.接下来的k行中,每行2个正整数,表示被封闭的方格所在的行号和列号.最后的2行,每行也有2个正整数,分别表示开始布线的方格(p,q)和结束布线的方格(r,s).
结果输出:将计算的最短布线长度和最短布线方案输出到文件output.txt.文件的第1行是最短布线长度.从第2行起,每行2个正整数,表示布线经过的方格坐标.如果无法布线,则输出“NoSolution!".
问题描述:给定一个赋权无向图G=(V,E),每个顶点都有权值w(v).如果,且对任意(u,V)∈E有u∈U或v∈U,就称U为图G的一个顶点覆盖.G的最小权顶点覆盖是指G中所含顶点权之和最小的顶点覆盖.
算法设计:对于给定的无向图G,设计一个优先队列式分支限界法,计算G的最小权顶点覆盖.
数据输入:由文件input.txt给出输入数据.第1行有2个正整数n和m,表示给定的图G有n个顶点和m条边,顶点编号为1,2,...,n.第2行有n个正整数表示n个顶点的权.接下来的m行中,每行有2个正整数u和v,表示图G的一条边(u,v).
结果输出:将计算的最小权顶点覆盖的顶点权值和以及最优解输出到文件output.txt.文件的第1行是最小权顶点覆盖顶点权之和;第2行是最优解xi(1≤i≤n),xi=0表示顶点i不在最小权顶点覆盖中,xi=1表示顶点i在最小权顶点覆盖中.
问题描述:假设有来自n个不同单位的代表参加一次国际会议.铄个单位的代表数分别为ri(i=1,2,...,n).会议餐厅共有m张餐桌,每张餐桌可容纳ci(i=1,2,...,m)个代表就餐.为了使代表们充分交流,希望从同一个单位来的代表不在同一个餐桌就餐.试设计一个算法,给出满足要求的代表就餐方案.
算法设计:对于给定的代表数和餐桌数以及餐桌容量,计算满足要求的代表就餐方案.
数据输入:由文件input.txt提供输入数据.文件第1行有2个正整数m和n,m表示餐桌数,n表示单位数(1≤m≤150,1≤n≤270).文件第2行有m个正整数,分别表示每个单位的代表数.文件第3行有n个正整数,分别表示每个餐桌的容量.
结果输出:将代表就餐方案输出到文件output.txt如果问题有解,在文件第1行输出1,否则输出0.接下来的m行给出每个单位代表的就餐桌号.如果有多个满足要求的方案,只要输出一个方案.
算法设计:对于给定的仓库布局,以及仓库管理员在仓库中的位置和箱子的开始位置和目标位置,设计一个解推箱子问题的分支限界法,计算出仓库管理员将箱子从开始位置推到目标位置所需的最少推动次数.
数据输入:由文件input.txt提供输入数据.输入文件第1行有2个正整数n和m(1≤n,m≤100).表示仓库是n×m个格子的矩形阵列.接下来有n行,每行有m个字符,表示格子的状态.
S——格子上放了不可移动的沉重货物;P——箱子的初始位置;
W——格子空闲:K——箱子的目标位置.
M——仓库管理员的初始位置:
结果输出:将计算的最少推动次数输出到文件output.txt.如果仓库管理员无法将箱子从开始位置推到目标位置则输出“NoSolution!".
算法设计:设计一个算法,计算警卫机器人的最佳哨位安排方案,使名画陈列馆中每个陈列室都在警卫机器人的监视下,且所用的警卫机器人数坡少.
数据输入:由文件input.txt给出输入数据.第1行有2个正整数m和n(1≤m,n≤20).
结果输出:将计算的警卫机器人数及其最佳哨位安排输出到文件output.txt.文件的第1行是警卫机器人数:接下来的m行中每行n个数,0表示无哨位,1表示哨位.