算法提高 交换Easy 时间限制:1.0s 内存限制:512.0MB 问题描述 给定N个整数组成的序列,每次交换当前第x个与第y个整数,要求输出最终的序列. 输入格式 第一行为序列的大小N(1<=N<=1000)和操作个数M(1<=M<=1000). 第二行包含N个数字,表示初始序列. 接下来M行,每行两个整数x,y (1<=x,y<=N),表示要交换的两个整数.在一次交换中,如果x和y相等,则不会改变序列的内容. 输出格式 输出N行,为交换后的序列中的数. 样例输入…
算法提高 题目 2 密码锁 时间限制:1.0s 内存限制:1.0GB 问题描述 你获得了一个据说是古代玛雅人制作的箱子.你非常想打开箱子看看里面有什么东西,但是不幸的是,正如所有故事里一样,神秘的箱子出现的时候总是会挂着神秘的锁. 这个锁上面看起来有 N 个数字,它们排成一排,并且每个数字都在 0 到 2 之间.你发现你可以通过锁上的机关来交换相邻两个数字的顺序.比如,如果原来有 5 个数字 02120,在一次交换以后你就可以得到 20120,01220,02210 或者 02102. 根据你所…
算法提高 选择排序 时间限制:1.0s 内存限制:256.0MB  选择排序 问题描述 排序,顾名思义,是将若干个元素按其大小关系排出一个顺序.形式化描述如下:有n个元素a[1],a[2],-,a[n],从小到大排序就是将它们排成一个新顺序a[i[1]]<a[i[2]]<-<a[i[n]] i[k]为这个新顺序. 选择排序的思想极其简单,每一步都把一个最小元素放到前面,如果有多个相等的最小元素,选择排位较考前的放到当前头部.还是那个例子:{3 1 5 4 2}: 第一步将1放到开头(第…
试题 算法提高 研究兔子的土豪 资源限制 时间限制: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棵树苗并要求全部种上,请你帮忙设计种树…