算法提高 分分钟的碎碎念 时间限制:1.0s 内存限制:256.0MB 问题描述 以前有个孩子,他分分钟都在碎碎念.不过,他的念头之间是有因果关系的.他会在本子里记录每一个念头,并用箭头画出这个念头的来源于之前的哪一个念头.翻开这个本子,你一定会被互相穿梭的箭头给搅晕,现在他希望你用程序计算出这些念头中最长的一条因果链. 将念头从1到n编号,念头i来源于念头from[i],保证from[i]<i,from[i]=0表示该念头没有来源念头,只是脑袋一抽,灵光一现. 输入格式 第一行一个正整数n表示…
试题 算法提高 研究兔子的土豪 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 某天,HWD老师开始研究兔子,因为他是个土豪 ,所以他居然一下子买了一个可以容纳10^18代兔子的巨大笼子(好像比我们伟大的地球母亲大一点点?),并开始研究它们,之后,他了解了兔子的繁衍规律:即fibonacci数列. 兔子繁殖了n代后,HWD老师很开心. 但是,HWD老师有密集恐惧症,所以,他只能去卖了兔子,他找到了一个好的雇主,但是这个雇主有强迫症,他只每次收购1007只兔子,HWD老师为了避免…
算法提高 3-2求存款 时间限制:1.0s 内存限制:256.0MB 问题描述 见计算机程序设计基础(乔林)P50第5题. 接受两个数,一个是用户一年期定期存款金额,一个是按照百分比格式表示的利率,计算一年期满后的本金与利息总额.说明:(1) 存款金额以人民币元为单位,精确到分:(2) 输入利率时不输入百分号,例如利率为3.87%,用户直接输入3.87:(3) 按照国家法律,存储利息所得需缴纳5%的所得税,计算结果时应当扣除所得税.(4) 显示的结果精确到人民币分. 注意:数据须用float表示…
算法提高 3-3求圆面积表面积体积 时间限制:1.0s 内存限制:256.0MB 问题描述 接受用户输⼊的数值,输出以该值为半径的(1)圆面积,(2)球体表面积,(3)球体体积.pi 取值3.1415926536 ,结果保留10位小数,每一列占20个字符,左对齐. 样例输入 一个满足题目要求的输入范例. 例: 1 样例输出 与上面的样例输入对应的输出. 例:(第一行1是输入,第二行是输出) 数据规模和约定 所有结果在double类型的表示范围内. import java.util.Scanner…
算法提高 5-3日历 时间限制:1.0s 内存限制:256.0MB 问题描述 已知2007年1月1日为星期一.设计一函数按照下述格式打印2007年以后(含)某年某月的日历,2007年以前的拒绝打印.为完成此函数,设计必要的辅助函数也是必要的. 样例输入 一个满足题目要求的输入范例. 例: 2050 3 样例输出 与上面的样例输入对应的输出. 例: 数据规模和约定 输入数据中每一个数的范围. 例:年 2007-3000,月:1-12. import java.util.Scanner; publi…
算法提高 11-2删除重复元素 时间限制:10.0s 内存限制:256.0MB 问题描述 为库设计新函数DelPack,删除输入字符串中所有的重复元素.不连续的重复元素也要删除. 要求写成函数,函数内部使用指针操作. 样例输入 1223445667889 样例输出 13579 样例输入 else 样例输出 ls 数据规模和约定 字符串数组最大长度为100. import java.util.Scanner; public class 删除重复元素 { public static void mai…
算法提高 P0401 时间限制:1.0s 内存限制:256.0MB 输入一个无符号整数x,输出x的二进制表示中1的个数. 输入: 76584 输出: 7 import java.util.Scanner; public class P0401 { public static void main(String[] args) { Scanner sc =new Scanner(System.in); String n = sc.next(); String s = Integer.toString…
算法提高 理财计划 时间限制:1.0s 内存限制:256.0MB 问题描述 银行近期推出了一款新的理财计划"重复计息储蓄".储户只需在每个月月初存入固定金额的现金,银行就会在每个月月底根据储户账户内的金额算出该月的利息并将利息存入用户账号.现在如果某人每月存入k元,请你帮他计算一下,n月后,他可以获得多少收益. 输入格式 输入数据仅一行,包括两个整数k(100<=k<=10000).n(1<=n<=48)和一个小数p(0.001<=p<=0.01),…
算法提高 解二元一次方程组 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个二元一次方程组,形如: a * x + b * y = c; d * x + e * y = f; x,y代表未知数,a, b, c, d, e, f为参数. 求解x,y 输入格式 输入包含六个整数: a, b, c, d, e, f; 输出格式 输出为方程组的解,两个整数x, y. 样例输入 例: 3 7 41 2 1 9 样例输出 例: 2 5 数据规模和约定 0 <= a, b, c, d, e,…
算法提高 陶陶摘苹果2 时间限制:1.0s 内存限制:256.0MB 问题描述 陶陶家的院子里有一棵苹果树,每到秋天树上就会结出n个苹果.苹果成熟的时候,陶陶就会跑去摘苹果.陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试. 现在已知n个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度.假设她碰到苹果,苹果就会掉下来.请帮陶陶算一下,经过她的洗劫后,苹果树上还有几个苹果. 输入格式 输入包括两行数据.第一行只包括两个正整数n(5<=n<=200)和m(6…
算法提高 质因数2 时间限制:1.0s 内存限制:256.0MB 将一个正整数N(1<N<32768)分解质因数,把质因数按从小到大的顺序输出.最后输出质因数的个数. 输入格式 一行,一个正整数 输出格式 两行,第一行为用空格分开的质因数 第二行为质因数的个数 样例输入 66 样例输出 2 3 113 样例输入 90 样例输出 2 3 3 5 4 样例输入 37 样例输出 37 1 import java.util.Scanner; public class 质因数2 { public sta…
算法提高 前10名 时间限制:1.0s 内存限制:256.0MB 问题描述 数据很多,但我们经常只取前几名,比如奥运只取前3名.现在我们有n个数据,请按从大到小的顺序,输出前10个名数据. 输入格式 两行. 第一行一个整数n,表示要对多少个数据 第二行有n个整数,中间用空格分隔.表示n个数据. 输出格式 一行,按从大到小排列的前10个数据,每个数据之间用一个空格隔开. 样例输入 26 54 27 87 16 63 40 40 22 61 6 57 70 0 42 11 50 13 5 56 7…
算法提高 扫雷 时间限制:1.0s 内存限制:256.0MB 问题描述 扫雷游戏你一定玩过吧!现在给你若干个n×m的地雷阵,请你计算出每个矩阵中每个单元格相邻单元格内地雷的个数,每个单元格最多有8个相邻的单元格. 0<n,m<=100 输入格式 输入包含若干个矩阵,对于每个矩阵,第一行包含两个整数n和m,分别表示这个矩阵的行数和列数.接下来n行每行包含m个字符.安全区域用'.'表示,有地雷区域用''表示.当n=m=0时输入结束. 输出格式 对于第i个矩阵,首先在单独的一行里打印序号:"…
算法提高 连接乘积 时间限制:1.0s 内存限制:256.0MB 问题描述 192这个数很厉害,用它分别乘以1.2.3,会得到: 192 x 1 = 192 192 x 2 = 384 192 x 3 = 576 把这三个乘积连起来,得到192384576,正好是一个1~9的全排列 我们把上面的运算定义为连接乘积: m x (1 - n) = k(其中m > 0 且 n > 1,对于上例,m = 192.n = 3.k = 192384576) 即k是把m分别乘以1到n的乘积连接起来得到的,则…
算法提高 师座操作系统 时间限制:1.0s 内存限制:256.0MB 问题描述 师座这天在程序设计课上学了指针和结构体以后,觉得自己可以轻松的写出操作系统,为了打败大微软帝国,他给这个系统起了个响亮的名字"操师座系统",你是师座手下的首席架构师,被要求写这个操作系统的文件系统部分,要求如下: 这个文件系统有的所有文件都有一个独一无二的文件名,除此之外分为两类文件,一类文件是数据存储文件,它可以存储一个字符串信息,另一类文件是快捷方式,它会指向另一个文件,有可能是数据块也有可能是快捷方式…
算法提高 盾神与砝码称重 时间限制:1.0s 内存限制:256.0MB 提交此题 查看参考代码 问题描述 有一天,他在宿舍里无意中发现了一个天平!这个天平很奇怪,有n个完好的砝码,但是没有游码.盾神为他的发现兴奋不已!于是他准备去称一称自己的东西.他准备好了m种物品去称.神奇的是,盾神一早就知道这m种物品的重量,他现在是想看看这个天平能不能称出这些物品出来.但是盾神稍微想了1秒钟以后就觉得这个问题太无聊了,于是就丢给了你. 输入格式 第一行为两个数,n和m. 第二行为n个数,表示这n个砝码的重量…
算法提高 文化之旅 时间限制:1.0s 内存限制:128.0MB 问题描述 有一位使者要游历各国,他每到一个国家,都能学到一种文化,但他不愿意学习任何一种文化超过一次(即如果他学习了某种文化,则他就不能到达其他有这种文化的国家).不同的国家可能有相同的文化.不同文化的国家对其他文化的看法不同,有些文化会排斥外来文化(即如果他学习了某种文化,则他不能到达排斥这种文化的其他国家). 现给定各个国家间的地理关系,各个国家的文化,每种文化对其他文化的看法,以及这位使者游历的起点和终点(在起点和终点也会学…
算法提高 我们的征途是星辰大海 时间限制:1.0s 内存限制:256.0MB 最新的火星探测机器人curiosity被困在了一个二维迷宫里,迷宫由一个个方格组成. 共有四种方格: '.' 代表空地,curiosity可以穿过它 '#' 代表障碍物,不可穿越,不可停留 'S' 代表curiosity的起始位置 'T' 代表curiosity的目的地 NASA将会发送一系列的命令给curiosity,格式如下:"LRUD"分别代表向左,向右,向上,向下走一步.由于地球和火星之间最近时也有5…
算法提高 最长公共子序列 时间限制:1.0s 内存限制:256.0MB 问题描述 给定两个字符串,寻找这两个字串之间的最长公共子序列. 输入格式 输入两行,分别包含一个字符串,仅含有小写字母. 输出格式 最长公共子序列的长度. 样例输入 abcdgh aedfhb 样例输出 3 样例说明 最长公共子序列为a,d,h. 数据规模和约定 字串长度1~1000. import java.util.Scanner; public class 最长公共子序列 { public static String…
算法提高 快速幂 时间限制:1.0s 内存限制:256.0MB 问题描述 给定A, B, P,求(A^B) mod P. 输入格式 输入共一行. 第一行有三个数,N, M, P. 输出格式 输出共一行,表示所求. 样例输入 2 5 3 样例输出 2 数据规模和约定 共10组数据 对100%的数据,A, B为long long范围内的非负整数,P为int内的非负整数. import java.util.Scanner; public class 快速幂 { static Scanner in =…
算法提高 最长字符序列 时间限制:1.0s 内存限制:256.0MB 最长字符序列 问题描述 设x(i), y(i), z(i)表示单个字符,则X={x(1)x(2)--x(m)},Y={y(1)y(2)--y(n)},Z={z(1)z(2)--z(k)},我们称其为字符序列,其中m,n和k分别是字符序列X,Y,Z的长度,括号()中的数字被称作字符序列的下标. 如果存在一个严格递增而且长度大于0的下标序列{i1,i2--ik},使得对所有的j=1,2,--k,有x(ij)=z(j),那么我们称Z…
算法提高 3-1课后习题2 时间限制:1.0s 内存限制:256.0MB 问题描述 编写一个程序,接受用户输入的10个整数,输出它们的和. 输出格式 要求用户的输出满足的格式. 例:输出1行,包含一个整数,表示所有元素的和. 样例输入 1 2 3 4 5 6 7 8 9 10 样例输出 55 数据规模和约定 输入数据中每一个数的范围. 例:输入数<100000. import java.util.Scanner; public class 课后习题2 { public static void m…
算法提高 聪明的美食家 时间限制:1.0s 内存限制:256.0MB 问题描述 如果有人认为吃东西只需要嘴巴,那就错了. 都知道舌头有这么一个特性,"由简入奢易,由奢如简难"(据好事者考究,此规律也适合许多其他情况).具体而言,如果是甜食,当你吃的食物不如前面刚吃过的东西甜,就很不爽了. 大宝是一个聪明的美食家,当然深谙此道.一次他来到某小吃一条街,准备从街的一头吃到另一头.为了吃得爽,他大费周章,得到了各种食物的"美味度".他拒绝不爽的经历,不走回头路而且还要爽歪…
算法提高 贪吃的大嘴 时间限制:1.0s 内存限制:256.0MB 问题描述 有一只特别贪吃的大嘴,她很喜欢吃一种小蛋糕,而每一个小蛋糕有一个美味度,而大嘴是很傲娇的,一定要吃美味度和刚好为m的小蛋糕,而且大嘴还特别懒,她希望通过吃数量最少的小蛋糕达到这个目的.所以她希望你能设计一个程序帮她决定要吃哪些小蛋糕. 输入格式 先输入一行包含2个整数m.n,表示大嘴需要吃美味度和为m的小蛋糕,而小蛋糕一共有n种,下面输入n行,每行2个整数,第一个表示该种小蛋糕的美味度,第二个表示蛋糕店中该种小蛋糕的总…
算法提高 士兵排队问题 时间限制:1.0s 内存限制:256.0MB 试题 有N个士兵(1≤N≤26),编号依次为A,B,C,-,队列训练时,指挥官要把一些士兵从高到矮一次排成一行,但现在指挥官不能直接获得每个人的身高信息,只能获得"P1比P2高"这样的比较结果(P1.P2∈A,B,C,-,Z,记为 P1>P2),如"A>B"表示A比B高. 请编一程序,根据所得到的比较结果求出一种符合条件的排队方案. (注:比较结果中没有涉及的士兵不参加排队) 输入要求…
算法提高 数字黑洞 时间限制:1.0s 内存限制:256.0MB 问题描述 任意一个四位数,只要它们各个位上的数字是不全相同的,就有这样的规律: 1)将组成该四位数的四个数字由大到小排列,形成由这四个数字构成的最大的四位数: 2)将组成该四位数的四个数字由小到大排列,形成由这四个数字构成的最小的四位数(如果四个数中含有0,则得到的数不足四位): 3)求两个数的差,得到一个新的四位数(高位零保留). 重复以上过程,最后一定会得到的结果是6174. 比如:4312 3087 8352 6174,经过…
算法提高 身份证排序 时间限制:1.0s 内存限制:256.0MB 问题描述 安全局搜索到了一批(n个)身份证号码,希望按出生日期对它们进行从大到小排序,如果有相同日期,则按身份证号码大小进行排序.身份证号码为18位的数字组成,出生日期为第7到第14位 输入格式 第一行一个整数n,表示有n个身份证号码 余下的n行,每行一个身份证号码. 输出格式 按出生日期从大到小排序后的身份证号,每行一条 样例输入 5 466272307503271156 215856472207097978 23480458…
算法提高 种树 时间限制:1.0s 内存限制:256.0MB 种树 问题描述 A城市有一个巨大的圆形广场,为了绿化环境和净化空气,市政府决定沿圆形广场外圈种一圈树.园林部门 得到指令后,初步规划出n个种树的位置,顺时针编号1到n.并且每个位置都有一个美观度Ai,如果在这里种树就可以得到这Ai的美观度.但由于A城市土壤 肥力欠佳,两棵树决不能种在相邻的位置(i号位置和i+1号位置叫相邻位置.值得注意的是1号和n号也算相邻位置!). 最终市政府给园林部门提供了m棵树苗并要求全部种上,请你帮忙设计种树…
算法提高 铺地毯 时间限制:1.0s 内存限制:256.0MB 问题描述 为了准备一个学生节,组织者在会场的一片矩形区域(可看做是平面直角坐标 系的第一象限)铺上一些矩形地毯.一共有n 张地毯,编号从1 到n.现在将这些地毯按照 编号从小到大的顺序平行于坐标轴先后铺设,后铺的地毯覆盖在前面已经铺好的地毯之上. 地毯铺设完成后,组织者想知道覆盖地面某个点的最上面的那张地毯的编号.注意:在矩形 地毯边界和四个顶点上的点也算被地毯覆盖. 输入格式 输入共 n+2 行. 第一行,一个整数 n,表示总共有…
算法提高 计算器 时间限制:1.0s 内存限制:256.0MB [问题描述] 王小二的计算器上面的LED显示屏坏掉了,于是他找到了在计算器维修与应用系学习的你来为他修计算器. 屏幕上可以显示0~9的数字,其中每个数字由7个小二极管组成,各个数字对应的表示方式如图所示: 为了排除电路故障,现在你需要计算,将数字A变为数字B需要经过多少次变换? 注意:现在将其中每段小二极管的开和关都定义为一次变换.例如数字1变为2是5次操作. [输入格式] 第一行为一个正整数L,表示数码的长度. 接下来两行是两个长…