1、1、最短路径问题下图给出了一个地图,地图中每个顶点代表一个城市,两个城市间的连线代表道路,连线上的数值代表道路长度。现在,我们想从城市 a 到达城市 E。怎样走才能使得路径最短,最短路径的长度是多少?2、数字游戏(Game.pas) 丁丁最近沉迷于一个数字游戏之中。这个游戏看似简单,但丁丁在研究了许多天之后却发觉原来在简单的规则下想要赢得这个游戏并不那么容易。游戏是这样的,在你面前有一圈整数(一共 n 个) ,你要按顺序将其分为 m 个部分,各部分内的数字相加,相加所得的 m个结果对 10 取模后再相乘,最终得到一个数 k。游戏的要求是使你所得的 k 最大或者最小。例如,对于下面这圈数字(n=
2、4,m=2):当要求最小值时,(2-1) mod 10)(4+3) mod 10)=17=7,要求最大值时,为(2+4+3) mod 10)(-1 mod 10)=99=81。特别值得注意的是,无论是负数还是正数,对 10 取模的结果均为非负值。丁丁请你编写程序帮他赢得这个游戏。【输入格式】输入文件第一行有两个整数,n(1n50)和 m(1m 9) 。以下 n 行每行有个整数,其绝对值不大于 104,按顺序给出圈中的数字,首尾相接。【输出格式】输出文件有两行,各包含一个非负整数。第一行是你程序得到的最小值,第二行是最大值。3、加分二叉树【问题描述】设一个 n 个节点的二叉树 tree 的中序遍
3、历为(l,2,3,n ) ,其中数字 1,2,3,n为节点编号。每个节点都有一个分数(均为正整数) ,记第 j 个节点的分数为 di,tree 及它的每个子树都有一个加分,任一棵子树 subtree(也包含 tree 本身)的加分计算方法如下:subtree 的左子树的加分 subtree 的右子树的加分subtree 的根的分数。若某个子树为空,规定其加分为 1,叶子的加分就是叶节点本身的分数。不考虑它的空子树。试求一棵符合中序遍历为(1,2,3,n)且加分最高的二叉树 tree。要求输出;(1)tree 的最高加分(2)tree 的前序遍历【输入格式】第 1 行:一个整数 n(n30) ,为节点个数;第 2 行:n 个用空格隔开的整数,为每个节点的分数(分数100) 。【输出格式】第 1 行:一个整数,为最高加分(结果不会超过 4,000,000,000) ;第 2 行:n个用空格隔开的整数,为该树的前序遍历。