设计一个汽车类Auto,其中包含一个表示速度的double型的成员变量speed,表示启动的start()方法、表示加速的speedUp()方法以及表示停止的stop()方法。再设计一个Auto类的子类Bus表示公共汽车。在Bus类中定义一个int型的表示乘客数的成员变量passenger,另外定义两个方法gotOn()和gotOff()表示乘客上车和下车。编写程序测试Bus类的使用。
设计一个point(点)类: (1)该类具有成员变量x,y(表示点的横、纵坐标); (2)定义一个有参构造方法point(int x,int y),将其一对坐标值作为参数,其中x,y为给定坐标值; (3)定义一个无参的构造方法point()(令两坐标值均为0); (4)设计一个实例方法distance(point p1,point p2),实现求坐标轴上两个点的距离(Java中的开平方根函数为Math.sqrt()),其方法的声明为:double distance(point p1,point p2) 。 编写Test类,在其main方法中创建2个point对象,对应点(10,10)和点(20,25),再调用distance(point p1,point p2)方法计算出两点之间的距离并输出该值。
大兵瑞恩被关押在迷宫的东南角,即(N,M)单元里,并已经昏迷.迷宫只有一个入口,在西北角.也就是说,麦克可以直接进入(1,1)单元.另外,麦克从一个单元移动到另一个相邻单元的时间为1,拿取所在单元钥匙的时间及用钥匙开门的时间可忽略不计.
算法设计:试设计一个算法,帮助麦克以最快的方式到达瑞恩所在单元,营救大兵瑞恩.
数据输入:由文件input.txt提供输入数据.第1行有3个整数,分别表示N、M、P的值.第2行是1个整数K,表示迷宫中门和墙的总数.第1+2行(1≤I≤K),有5个整数,依次为Xi1、Yi1、Xi2、Yi2、Gi:
当Gi≥1时,表示(Xi1,Yi1)单元与(Xi2,Yi2)单元之间有一扇第Gi类的门;当Gi=0时,表示(Xi1,Yi1)单元与(Xi2,Yi2)单元之间一堵不可逾越的墙(其中,|Xi1-X2|+Yi1-Yi2|=1,0≤Gi≤P).
第K+3行是一个整数S,表示迷宫中存放的钥匙总数.
第K+3+J行(1≤J≤S)有3个整数,依次为Xi1、Yi1、Qi;表示第J把钥匙存放在(Xi1、Yi1)单元里,并且第J把钥匙是用来开启第Qi类门的(其中1≤Qi≤P).
输入数据中同一行各相邻整数之间用一个空格分隔.
结果输出:将麦克营救到大兵瑞恩的最短时间值输出到文件output.txt.如果问题无解,则输出-1.
给定两个长度分别为n和m的序列x[0...n-1|]和y[0...m-1],以及一个长度为p的约束字符串s[0...p-1].带有子串排斥约束的最长公共子序列问题就是要找出x和y的不包含s为其子串的最长公共子序列.例如,如果给定的序列x和y分别为AATGCCTAGGC和CGATCTGGAC.字符串s=TG时,子序列ATCTGGC是x和y的一个无约束的最长公共子序列,而不包含s为其子串的最长公共子序列是ATCGGC.
算法设计:设计一个算法,找出给定序列x和y的不包含s为其子串的最长公共子序列.
数据输入:由文件input.txt提供输入数据.文件的第1行中给出正整数,分别表示给定序列x和y及约束字符串s的长度.接下来的3行分别给出序列x、y和约束字符串s.
结果输出:将计算出的x和y的不包含s为其子串的最长公共子序列的长度输出到文件output.txt中.
算法设计:对于给定的n和k个加油站位置,计算最少加油次数.
数据输入:由文件input.tst给出输入数据.第1行有2个正整数n和k,表示汽车加满油后可行驶nkm,且旅途中有k个加油站.接下来的1行中有k+1个整数,表示第k个加油站与第k-1个加油站之间的距离.第0个加油站表示出发地,汽车已加满油.第k+1个加油站表示目的地.
结果输出:将计算的最少加油次数输出到文件output.txt.如果无法到达目的地,则输出“NoSolution",
设计一个名为MyPoint的类表示一个具有x坐标和y坐标的点,该类包括: 两个数据域(成员变量)x和y表示坐标; 无参构造方法创建点(0,0); 一个构造方法根据指定坐标创建一个点; distance方法(static修饰)返回MyPoint类型的两个点之间的距离(方法的参数为两个MyPoint对象); distance方法返回从当前点(调用方法的对象)到另一点(方法的参数)之间的距离(方法的参数为一个MyPoint对象); 在主方法中,输入一个点,求距离原点的距离,再输入两点,求两点之间的距离。 PS:成员变量必须由private修饰,且为其定义访问方法
设计一个名为 Rectangle 的类表示矩形。这个类包括: (1) 两 个 名 为 width 和 height 的 double 型数据域, 它们分别表示矩形的宽和高。 width 和height 的默认值都为1。 (2) 创建默认矩形的无参构造方法。 (3) — 个 创 建 width 和 height 为指定值的矩形的构造方法。 (4) 属性的访问器方法。 (5) toString方法,返回宽、 高、 面积和周长。 (6) 一个名为 getArea() 的方法返回这个矩形的面积。 (7) 一个名为 getPerimeter()的方法返回周长。 编写一个测试程序. 创建两个 Rectangle 对 象 ,一个矩形的宽为 5 而高为 10, 另一个矩形的宽为 7.5, 而高为 27.5。 控制台显示输出每个矩形的宽、 高、 面积和周长。
问题描述:子集和问题的一个实例为.其中,是一个正整数的集合,c是一个正整数.子集和问题判定是否存在S的一个子集S1,使得.试设计一个解子集和问题的回溯法.
算法设计:对于给定的正整数的集合和正整数c,计算S的一个了集S1,使得
数据输入:由文件input.txt提供输入数据.文件第1行有2个正整数n和c,n表示S的大小,c是子集和的目标值.接下来的1行中,有n个正整数,表示集合S中的元素.
结果输出:将子集和问题的解输出到文件output.txt.当问题无解时,输出“NoSolution!".
算法设计:设计一个算法,找出给定序列x和y的包含s为其子串的最长公共子序列.
数据输入:由文件input.txt提供输入数据.文件的第1行中给出正整数,分别表示给定序列x、y和约束字符串s的长度.接下来的3行分别给出序列x、y和约束字符串s.
结果输出:将计算出的x和y的包含s为其子串的最长公共子序列的长度输出到文件output.txt中.
试设计一个算法,利用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.