从1到n的n个数字中选择m(≤n)个不相邻的数字,共有多少种方法?
第1题
算法设计:给定byteland部落中居民间的仇敌关系,计算组成部落卫队的最佳方案.
数据输入:由文件input.txt给出输入数据.第1行有2个正整数n和m,表示byteland部落中有n个居民,居民间有m个仇敌关系.居民编号为1,2,...,n.接下来的m行中,每行有2个正整数u和v,表示居民u与居民v是仇敌.
结果输出:将计算的部落卫队的最佳组建方案输出到文件output.txt文件的第1行是部落卫队的人数:第2行是卫队组成xi(1≤i≤n).xi=0表示居民i不在卫队中,xi=1表示居民i在卫队中.
第2题
算法设计:给定表示书的总页码的十进制整数n(1≤n≤109),计算书的全部页码中分别用到多少次数字0、1、2、...9.
数据输入:输入数据由文件名为input.txt的文本文件提供.每个文件只有1行,给出表示书的总页码的整数n.
结果输出:将计算结果输出到文件output.txt.输出文件共10行,在第k(k=1,2,...10)行输出页码中用到数字k-1的次数.
第3题
问题描述:假设有来自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行给出每个单位代表的就餐桌号.如果有多个满足要求的方案,只要输出一个方案.
第4题
证明定理17.18.
定理17.18:设G*是具有h(k≥2)个连通分支的平面图G的对偶图,n*m*,r*和n,m,r分别为G*和G的顶点数,边数,面数,则
(1)n*=r,(2)m*= m;(3)r*=n-k+1;
(4)设G*的顶点vt*,位于G的面Rt中,则dG*(vt*)=dcg(Rt).
第5题
算法设计:对于给定的仓库布局,以及仓库管理员在仓库中的位置和箱子的开始位置和目标位置,设计一个解推箱子问题的分支限界法,计算出仓库管理员将箱子从开始位置推到目标位置所需的最少推动次数.
数据输入:由文件input.txt提供输入数据.输入文件第1行有2个正整数n和m(1≤n,m≤100).表示仓库是n×m个格子的矩形阵列.接下来有n行,每行有m个字符,表示格子的状态.
S——格子上放了不可移动的沉重货物;P——箱子的初始位置;
W——格子空闲:K——箱子的目标位置.
M——仓库管理员的初始位置:
结果输出:将计算的最少推动次数输出到文件output.txt.如果仓库管理员无法将箱子从开始位置推到目标位置则输出“NoSolution!".
第6题
设X是含有n个元素的集合,从X中均匀地选取元素.设第k次选取时首次出现重复.
(1)试证明当n充分大时,k的期望值为.其中,.
(2)由此设计一个计算给定集合X中元素个数的概率算法.
第7题
a)图7-21中的边能剖分为两条路(边不相重),试给出这样的剖分。
b)设G是一个具有k个奇数度结点(k>0)的连通图,证明在G中的边能剖分为k/2条路(边不相重)。
c)设G是一个具有k个奇数度结点的图,问最少加几条边到G中,而使所得的图有一条欧拉回路,说明对于图7-21如何能做到这一点。
d)在c)中如果只允许加平行于G中已存在的边,问最少加几条边到G中,使所得的图中有一条欧拉回路,这事总能做到吗?叙述能做到这事的充分必要条件。
第8题
试设计一个算法,利用T公司提供的m个补丁程序,将原软件修复成一个没有错误的软件,并使修复后的软件耗时最少.
算法设计:对于给定的n个错误和m个补丁程序,找到总耗时最少的软件修复方案.
数据输入:由文件input.txt提供输入数据.文件第1行有2个正整数n和m,n表示错误总数,m表示补丁总数(1≤n≤20,1≤m≤100).接下来m行给出了m个补丁的信息.每行包括一个正整数,表示运行补丁程序i所需时间以及2个长度为n的字符串,中间用个空格符隔开.在第1个字符串中,如果第k个字符bk为“+”,则表示第k个错误属于B1[i],若为“-”,则表示第k个错误属于B2[i],若为“0”,则第k个错误既不属于B1[i]也不属于B2[i],即软件中是否包含第k个错误并不影响补丁i的可用性.在第2个字符串中,如果第k个字符bk为“+”,则表示第k个错误属于F1[i],若为“-”,则表示第k个错误属于F2[i],若为“0”,则第k个错误既不属于F1[i]也不属于F2[i],即软件中是否包含第k个错误不会因使用补丁i而改变.
结果输出:将总耗时数输出到文件output.txt.如果问题无解,则输出0.
第9题
A.电子的自旋量子数ms=±1/2是从薛定谔方程中解出来的
B.磁量子数m=0的轨道都是球形对称的轨道
C.角量子数l的可能取值是从0到n的正整数
D.多电子原子中,电子的能量决定于主量子数n和角量子数l
第10题
规则I:每次只能移动1个圆盘:
规则II:任何时刻都不允许将较大的圆盘压在较小的圆盘之上;
规则III:任何时刻都不允许将同色圆盘叠放在一起:
规则IV:在满足移动规则I~III的前提下,可将圆盘移至A、B、C中任一塔座上.
试设计一个算法,用最少的移动次数将塔座A上的n个圆盘移到塔座B上,并仍按同样顺序叠置.
算法设计:对于给定的正整数n,计算最优移动方案.
数据输入:由文件input.txt给出输入数据.第1行是给定的正整数no.
结果输出:将计算出的最优移动方案输出到文件output.txt.文件的每行由一个正整数k
和2个字符c1和c2组成,表示将第k个圆盘从塔座c1移到塔座c2上.
第11题
问题描述:给定一个赋权无向图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在最小权顶点覆盖中.