算法提高
文章平均质量分 64
算法提高
深街酒徒*
专业气氛组成员
展开
-
算法提高 输出满足条件的数字 Java 题解 435
问题描述 编写一个程序,输出从1到99的所有不能被7整除和数字中不包含7的整数,要求每两个整数间用一个空格格开。也就是说,在屏幕上输出1 2 3 4 ...,但7、14、21这些7的倍数,以及17、72等包含数字7的数都不能输出。(提示:用循环结构,对每个数字,需要分别判断它是否是7的倍数,以及它的个位和十位数字是否是7,具体算法同学们动脑筋。可在循环中结合使用if和continue语句)输入格式 无输出格式 输出题目中满足条件的数字,数字间以空格隔开。样例输入无样例输原创 2022-03-14 21:33:25 · 1029 阅读 · 0 评论 -
算法提高 合唱队形 java 题解 348
问题描述 N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…,TK, 则他们的身高满足T1<...<Ti>Ti+1>…>TK(1<=i<=K)。 你的任务是,已知所有N位同学的身高,计算最少需要几位同学出列,可以使得剩下的同学排成合唱队形。输入格式 输入的第一行是一个整数N(2<=N<=10原创 2022-02-10 08:00:00 · 200 阅读 · 0 评论 -
算法提高 最长递增子序列 java 题解 591
问题描述 给定一个序列,求解它的最长递增子序列的长度。比如:给定序列[10, 9, 2, 5, 3, 7, 101, 18],它的最长递增子序列是[2, 3, 7, 101],所以最长递增子序列的长度为4。最长递增子序列的组合方式可能不唯一,只需要返回其长度。 请编写一个程序,实现上述功能。(可以考虑不同的时间复杂度实现,比如O(n^2)和O(nlogn)等,注意清橙上判断输入结束用EOF,提交时用'\n')输入格式 输入一个整数序列。(输入序列长度不超过100)输出格式 最长原创 2022-02-09 08:00:00 · 544 阅读 · 0 评论 -
算法提高 分解质因数 java 题解 359
问题描述 给定一个正整数n,尝试对其分解质因数输入格式 仅一行,一个正整数,表示待分解的质因数输出格式 仅一行,从小到大依次输出其质因数,相邻的数用空格隔开样例输入100样例输出2 2 5 5数据规模和约定 n<=2147483647解题思路:(优化前)找某个数的质因数,先将这个数之前的所有质数找出来(可以找到这个数的开根号之前为止),再从这些质数中找到能被整除的质数,这些质数就是符合解。java代码:import java原创 2022-02-05 08:00:00 · 387 阅读 · 0 评论 -
算法提高 奥运会开幕式 java 题解 296 (模拟队列)
问题描述 学校给高一(三)班分配了一个名额,去参加奥运会的开幕式。每个人都争着要去,可是名额只有一个,怎么办?班长想出了一个办法,让班上的所有同学(共有n个同学)围成一圈,按照顺时针方向进行编号。然后随便选定一个数m,并且从1号同学开始按照顺时针方向依次报数,1, 2, …, m,凡报到m的同学,都要主动退出圈子。然后不停地按顺时针方向逐一让报出m者出圈,最后剩下的那个人就是去参加开幕式的人。 要求:用环形链表的方法来求解。所谓环形链表,即对于链表尾结点,其next指针又指向了链表的首结点。基本思路原创 2022-01-22 08:00:00 · 168 阅读 · 0 评论 -
算法提高 字符串的操作 java 题解 356
问题描述 给出一个字符串S,然后给出q条指令,分别有4种: 1. Append str 表示在S的最后追加一个字符串str。 例: 原字符串:ABCDE 执行 Append FGHIJ 后 字符串变为:ABCDEFGHIJ 2. Insert x str 表示在位置x处插入一个字符串str。(输入保证0<x<=当前字符串长度) 例: 原字符串:ABCGHIJ 执行 Insert 4 DEF 后 字符串变为:ABCDEFGHIJ 3. Sw原创 2022-01-21 08:00:00 · 253 阅读 · 0 评论 -
算法提高 逆序对 java 题解 620
问题描述 SORT公司是一个专门提供排序服务的公司,该公司的宗旨是:“顺序是美丽的”。他们的工作是通过一系列移动,将某些物品按顺序摆好。他们的服务是通过工作量来计算的,即移动物品的次数。所以,在工作前必须先考察工作量,以便向客户提出收费数目。 用户并不需要知道精确的移动次数,实质上,大多数人都是凭感觉来认定这一列物品的混乱程度。根据SORT公司的经验,人们一般是根据“逆序对”的数目多少来称呼这一序列的混乱程度。假设将序列中第I件物品的参数定义为Ai,那么排序就是将A1,……An从小到大排序。若i&原创 2022-01-20 08:00:00 · 461 阅读 · 0 评论 -
算法提高 奥运会开幕式 java 题解 296(Josepfu)
问题描述 学校给高一(三)班分配了一个名额,去参加奥运会的开幕式。每个人都争着要去,可是名额只有一个,怎么办?班长想出了一个办法,让班上的所有同学(共有n个同学)围成一圈,按照顺时针方向进行编号。然后随便选定一个数m,并且从1号同学开始按照顺时针方向依次报数,1, 2, …, m,凡报到m的同学,都要主动退出圈子。然后不停地按顺时针方向逐一让报出m者出圈,最后剩下的那个人就是去参加开幕式的人。 要求:用环形链表的方法来求解。所谓环形链表,即对于链表尾结点,其next指针又指向了链表的首结点。基本思路原创 2022-01-16 13:37:40 · 81 阅读 · 0 评论 -
算法提高 哈哈哈 java 题解 978 bfs
题目: 武侠学社里流行着一个冷笑话,爷爷对孙子说:“你知道金庸写的十四本书可以连成一副对联吗?飞雪连天射白鹿,笑书神侠倚碧鸳!”孙子不屑地说:“你知道JK罗琳写的七本书可以连成一句话吗?哈哈哈哈哈哈哈…”。这七个“哈”,代表着罗琳的哈利波特系列,书中的传奇魔法师哈利波特和队友一起,历经重重艰险,通过他们的智慧和宝物一次又一次的闯过难关。 时光如梭,哈利伙伴们也都长大了,他们四处游历,探寻各种迷宫。这日,他们来到一个迷宫,放眼望去,满地都是珍贵的宝物。这么多的宝物却无人拾取太不寻常了。有着丰富探险经验原创 2021-12-15 17:46:55 · 726 阅读 · 3 评论 -
算法提高 学霸的迷宫 java 题解 147 (多种思路求解)
目录问题描述输入格式输出格式样例输入样例输出数据规模和约定方向一:(dfs:未AC)解题思路:java代码:提交截图:方向二:(bfs:AC)解题思路:对路径的处理:对路径两种处理方式的比较:java代码:(二维数组求路径)(正向遍历)java代码:(二维数组求路径)(逆向遍历)提交截图:java代码:(将路径封装进类求路径)(推荐)提交截图:比较dfs和bfs:问题描述 学霸抢走了大家的作业,班长为了帮同学们找回原创 2021-12-10 23:25:23 · 735 阅读 · 0 评论 -
算法提高 智能体系列赛 java 题解
资源限制时间限制:1.0s 内存限制:256.0MB问题描述 zsyzgu是一个弱菜,尽管如此他还是参加了智能体系列赛。智能体系列赛的问题经简化后是这样的,有一只猴子和一些矿点,知道他们在平面上的坐标,这只猴子要经过这些矿点至少一次。假设这只猴子从点A走到点B所要花费的步数是这两个点的曼哈顿距离(即|A.x-B.x|+|A.y-B.y|),问这只猴子经过这些矿点至少一次所需的最少步数。 系列赛中的许多选手都用了贪心的策略,即每次都到最近的没经过的矿点去。但zsyzgu的思路是搜索,这也.原创 2021-12-05 08:00:00 · 346 阅读 · 0 评论 -
算法提高 素数环 java 题解 977
资源限制时间限制:3.0s 内存限制:256.0MBProblem Description A ring is compose of n circles as shown in diagram. Put natural number 1, 2, ..., n into each circle separately, and the sum of numbers in two adjacent circles should be a prime. Note: the number of ..原创 2021-12-03 08:00:00 · 253 阅读 · 1 评论 -
试题 算法提高 密室逃脱 java 题解 1183
问题描述 真人版密室逃脱游戏风靡全球,不仅在麻瓜世界广受欢迎,而且在魔法世界也十分流行。考虑到魔法世界的人们会使用能够瞬间移动的魔法,密室逃脱游戏在被引进魔法世界时作了一些修改:“密室迷宫”由排成n行m列的nm间房间组成,每间房间会被标记为“危险的”或者“安全的”,参加者在左上角的房间中开始游戏,通过使用红绿蓝三种不同的魔法在房间迷阵中移动(只能移动到“安全的”房间,不能移动到“危险的”房间),最后到达右下角的房间即获得胜利。三种不同魔法的效果如下: “红魔法”(r):瞬间移动到所在房间右边的第二原创 2021-12-01 23:38:00 · 763 阅读 · 0 评论 -
试题 算法提高 排列数 java 题解 188
问题描述 0、1、2三个数字的全排列有六种,按照字母序排列如下: 012、021、102、120、201、210 输入一个数n 求0~9十个数的全排列中的第n个(第1个为0123456789)。输入格式 一行,包含一个整数n输出格式 一行,包含一组10个数字的全排列样例输入1样例输出0123456789数据规模和约定 0 < n <= 10!解题思路:将0~9十个数字放入数组中,再设置一个标志数组,对数组元素深度优先原创 2021-11-28 18:33:34 · 241 阅读 · 0 评论 -
试题 算法提高 8皇后·改 java 题解 203
问题描述 规则同8皇后问题,但是棋盘上每格都有一个数字,要求八皇后所在格子数字之和最大。输入格式 一个8*8的棋盘。输出格式 所能得到的最大数字和样例输入1 2 3 4 5 6 7 89 10 11 12 13 14 15 1617 18 19 20 21 22 23 2425 26 27 28 29 30 31 3233 34 35 36 37 38 39 4041 42 43 44 45 46 47 4848 50 51 52 53 54 55 5657原创 2021-11-27 23:07:40 · 434 阅读 · 0 评论 -
试题 算法提高 多源最短路 java 题解 1057
资源限制时间限制:3.0s 内存限制:256.0MB问题描述 给定n个结点两两之间的单向边的长度,求两两之间的最短路径。输入格式 输入第一行包含一个整数n,表示点数。 接下来n行,每行包含n个整数,第i行表示第i个点到每个点的边的长度,如果没有边,则用0表示。输出格式 输出n行,第i行表示第i个点到其他点的最短路径长度,如果没有可达的路径,则输出-1。样例输入30 1 00 0 60 2 0样例输出0 1 7-1 0 6-1 2 0.原创 2021-11-27 11:25:09 · 362 阅读 · 0 评论 -
试题 算法提高 P0603 java题解 1127
题目描述:编写一个程序,输入一个句子,然后统计出这个句子当中不同的单词个数。例如,对于句子“one little two little three little boys”,总共有5个不同的单词,one, little, two, three, boys。说明 (1)由于句子当中包含有空格,所以应该用gets函数来输入这个句子。 (2)输入的句子当中只包含英文字符和空格,单词之间用一个空格隔开。 (3)不用考虑单词的大小写,假设输入的都是小写字符。 (4)句子长度不超过100个字符原创 2021-11-27 10:28:11 · 279 阅读 · 0 评论 -
试题 算法提高 吃鱼丸 java 题解 1150
问题描述 UOI要吃鱼丸。很多很多的鱼丸……你可以近似认为是无穷多。他可以一口吃1个,也可一口吃3个,可是他不想变2,所以从来不一口吃2个。UOI想知道,吃N个鱼丸有多少种方法。输入格式 第一行一个整数N表示鱼丸的个数。输出格式 一个整数表示吃鱼丸的方法数。样例输入3样例输出2数据规模和约定 1<=N<=70解题思路:类似于斐波那契数列或青蛙跳台阶问题:设第n个鱼丸吃法总数为F(n)。则F(1)=1, F(2)=1,F(3)原创 2021-11-21 12:08:48 · 1270 阅读 · 0 评论 -
试题 算法提高 字符串匹配 java 题解 336
问题描述 给出一个字符串和多行文字,在这些文字中找到字符串出现的那些行。你的程序还需支持大小写敏感选项:当选项打开时,表示同一个字母的大写和小写看作不同的字符;当选项关闭时,表示同一个字母的大写和小写看作相同的字符。输入格式 输入的第一行包含一个字符串S,由大小写英文字母组成。 第二行包含一个数字,表示大小写敏感的选项,当数字为0时表示大小写不敏感,当数字为1时表示大小写敏感。 第三行包含一个整数n,表示给出的文字的行数。 接下来n行,每行包含一个字符串,字符串由大小写英文字母组原创 2021-11-20 17:45:22 · 83 阅读 · 0 评论 -
算法提高 第二题 java 题解 1093
描述 现在,有一行括号序列,请你检查这行括号是否配对。输入格式 每组输入数据都是一个字符串S(S的长度小于10000,且S不是空串),测试数据组数少于5组。数据保证S中只含有"[","]","(",")"四种字符输出格式 每组输入数据的输出占一行,如果该字符串中所含的括号是配对的,则输出Yes,如果不配对则输出No样例输入([[]()])样例输出Yes解题思路:这个题其实是错题,测试样例与提交时的评测数据不一致,真确表述应为:先输入一个n,表示有几行,原创 2021-10-14 17:48:13 · 103 阅读 · 0 评论 -
算法提高 第三题 java 题解 1094
第三题(20分) 题目描述: 有一颗二叉树,最大深度为D,且所有叶子的深度都相同。所有结点从左到右从上到下的编号为1,2,3,·····,2的D次方减1。在结点1处放一个小猴子,它会往下跑。每个内结点上都有一个开关,初始全部关闭,当每次有小猴子跑到一个开关上时,它的状态都会改变,当到达一个内结点时,如果开关关闭,小猴子往左走,否则往右走,直到走到叶子结点。 一些小猴子从结点1处开始往下跑,最后一个小猴儿会跑到哪里呢?输入格式 输入二叉树叶子的深度D,和小猴子数目I,假设I不超过整棵树原创 2021-10-14 16:50:34 · 166 阅读 · 0 评论 -
算法提高 第五题 java 题解 1096
第五题(15分)题目描述 实验室的王大神设计的机器人“学霸”掌握了加减法运算以后,最近又学会了一些简单的函数求值,比如,它知道函数min(20,23)的值是20 ,add(10,98) 的值是108等等。经过训练,Dr.Kong设计的机器人卡多甚至会计算一种嵌套的更复杂的表达式。 假设表达式可以简单定义为: 1. 一个正的十进制数 x 是一个表达式。 2. 如果 x 和 y 是 表达式,则 函数min(x,y)也是表达式,其值为x,y 中的最小数。 3. 如果 x 和 y 是 表达式,则原创 2021-10-14 15:52:31 · 108 阅读 · 0 评论 -
字符串的操作 356 java 题解
问题描述 给出一个字符串S,然后给出q条指令,分别有4种: 1. Append str 表示在S的最后追加一个字符串str。 例: 原字符串:ABCDE 执行 Append FGHIJ 后 字符串变为:ABCDEFGHIJ 2. Insert x str 表示在位置x处插入一个字符串str。(输入保证0<x<=当前字符串长度) 例: 原字符串:ABCGHIJ 执行 Insert 4 DEF 后 字符串变为:ABCDEFGHIJ 3. Sw原创 2021-10-13 00:12:50 · 237 阅读 · 0 评论 -
01背包 144 java 题解
问题描述 给定N个物品,每个物品有一个重量W和一个价值V.你有一个能装M重量的背包.问怎么装使得所装价值最大.每个物品只有一个.输入格式 输入的第一行包含两个整数n, m,分别表示物品的个数和背包能装重量。 以后N行每行两个数Wi和Vi,表示物品的重量和价值输出格式 输出1行,包含一个整数,表示最大价值。样例输入3 52 33 54 7样例输出8数据规模和约定 1<=N<=200,M<=5000.解题思路:01背原创 2021-10-11 23:59:50 · 134 阅读 · 0 评论 -
成绩排序 290 java 题解
问题描述 给出n个学生的成绩,将这些学生按成绩排序, 排序规则,优先考虑数学成绩,高的在前;数学相同,英语高的在前;数学英语都相同,语文高的在前;三门都相同,学号小的在前输入格式 第一行一个正整数n,表示学生人数 接下来n行每行3个0~100的整数,第i行表示学号为i的学生的数学、英语、语文成绩输出格式 输出n行,每行表示一个学生的数学成绩、英语成绩、语文成绩、学号 按排序后的顺序输出样例输入21 2 32 3 4样例输出2 3 4 21 2原创 2021-10-11 23:31:54 · 141 阅读 · 0 评论