考查任何一棵二叉树T。a)试证明,对于其中任一节点v∈T,总有depth(v)+height(v)≤height(T);b)以上取等号的充要条件是什么?
第1题
第2题
如图x1.4所示,考查缺失右上角(面积为4n-1)的2n×2n棋盘,n≥1。
a)试证明,使用由三个1x1正方形构成、面积为3的L形积木,可以恰好覆盖此类棋盘;
b)试给出一个算法,对于任意n≥1,给出覆盖方案;
c)该算法的时间复杂度是多少?
第5题
第6题
第7题
第8题
第9题
第10题
序列中元素A[i]和A[j]若满足i<j且A[i]>A[j],则称之为一个逆序对(inversion)。考查如教材80页代码3.19所示的插入排序算法List::insertionSort(),试证明:
a)若所有逆序对的间距均不超过k,则运行时间为o(kn);
b)特别地,当k为常数时,插入排序可在线性时间内完成;
c)若共有I个逆序对,则关键码比较的次数不超过o(I);
d)若共有I个逆序对,则运行时间为o(n+I)。
第11题
问题描述:给定一棵有向树T,树T中每个顶点u都有一个权w(u),树的每条边(u,v)也都有一个非负边长d(u,v).有向树T的每个顶点u可以看作客户,其服务需求量为w(u).
每条边(u,v)的边长d(u,v)可以看作运输费用.如果在顶点u处未设置服务机构,则将顶点u处的服务需求沿有向树的边(u,v)转移到顶点v处服务机构所需付出的服务转移费用为w(u).d(u,v).树根处已设置了服务机构,现在要在树T中增设k处服务机构,使得整棵树T的服务转移费用最小.
算法设计:对于给定的有向树T,计算在树T中增设k处服务机构的最小服务转移费用.数据输入:由文件input.txt给出输入数据.第1行有2个正整数n和k.n表示有向树T的边数,k是要增设的服务机构数.有向树T的顶点编号为0,1,...,n.根结点编号为0.在接下来的n行中,每行有表示有向树T的一条有向边的3个整数.第i+1行的3个整数wi、vi、di,分别表示编号为i的顶点的权为wi,相应的有向边为(i,vi),其边长为di.
结果输出:将计算的最小服务转移费用输出到文件output.txt.