
算法与OJ
程序设计OJ和算法OJ
CAS979
这个作者很懒,什么都没留下…
展开
-
Python 实现OS银行家算法
使用python语言实现操作系统中的银行家算法实验报告原创 2022-11-19 16:28:55 · 2070 阅读 · 2 评论 -
P1784 小水同学的巧克力 OJ
题目描述小水喜欢吃正方形的巧克力。但是小水现在手里只有 nnn 块长方形的巧克力,小水可以从这些巧克力上切下一些正方形的巧克力。为了控制饮食,小水最多只能吃 mmm 块正方形巧克力,小水想知道,他最多能吃到多少面积的正方形巧克力。输入描述第一行两个正整数 n,m(1≤n≤1000,1≤m≤104)n,m(1\leq n\leq 1000 , 1 \leq m \leq 10^4)n,m(1≤n≤1000,1≤m≤104), 意义如题面所示。 接下来 nnn 行, 每行两个正整数 a,b(1≤a,b≤100,原创 2022-06-14 11:18:34 · 234 阅读 · 0 评论 -
P1746 求解查找最后一个数小于等于指定数的元素问题 OJ
利用vector 容器的find_if()函数可以自定义compare比较方法的特点,自定义一个,一旦输入的数字,超过要比较的数字就返回true的函数。每次找到的是题目要求的数字的后一位,因此返回cout原创 2022-06-11 11:57:04 · 844 阅读 · 0 评论 -
P1793 求解迷宫问题 OJ
其实就是DFS深度搜索,然后染色。与一般的区别主要在于当找到出口之后要进行打印,直接打印被染色的点即可。算法的问题在于只能找到一条路径,如果迷宫有多个路径就找不到了。详情请参考大佬的↓P1793 求解迷宫问题 - 辛夸高岭桂 - 博客园888 行,每行 888 个字符表示迷宫。输入保证至少存在一条合法路径。输出描述888 行,每行 888 个字符,空格表示所选路径。样例输入样例输出...原创 2022-06-11 11:25:12 · 463 阅读 · 0 评论 -
P1748 a+b+c+d==0 OJ
使用键值对 map 实现对排列组合的快速查找。分两次求和,求和的结果sum作为索引放入map键值对中,键值对的值默认为0。所以每次找到sum,就让对应的键值对map[sum]++,就可以记录下 求和结果为sum的排列组合可能有n个了。详情可以参考下文:P1748 a+b+c+d==0 - 辛夸高岭桂 - 博客园求和问题可以被看做是以下的公式,给定 A,B,C,D 四个列表,计算有多少四元组满足 (a, b, c, d) ∈ A × B × C × D 且 a + b + c + d = 0。我们推测所有的列原创 2022-06-11 10:03:41 · 621 阅读 · 0 评论 -
P1711 杨辉三角形 OJ
首先想用动态规划的方式生成杨辉三角形。然后暴力搜索杨辉三角形数组的行和列。输入描述单组输入,输入一个整数 N(1 ≤ N ≤ 100000000)。输出描述输出一个整数代表答案样例输入样例输出代码如下...原创 2022-06-11 09:23:47 · 418 阅读 · 0 评论 -
P1712 串联数字 OJ
今天刷OJ遇到了一到高中数学题,比较简单,写完顺便分享出来。原创 2022-05-29 10:02:03 · 808 阅读 · 0 评论 -
P1268 连续子段的最大和
题目描述从一组数据(长度为 n,其中 n <= 10000,数据的值都大于 -60000)中找出连续的一段数,使得这段数的和最大。输入描述第一行是一个正整数 n,表示数据的个数,从第二行开始是 n 个数据。输出描述一行,子段的最大和。样例输入Copy to Clipboard5 1 -3 4 1 -9 样例输出Copy to Clipboard5 代码#include<bits/stdc++.h>using namespa.原创 2022-05-28 19:37:31 · 449 阅读 · 0 评论 -
P1296 分形宇宙 OJ
题目描述魔法世界的科学家分形宇宙论,即宇宙是一个基本微粒,构成宇宙的无数个微粒又会有其他的小宇宙。分形定义如下:1 度的分形为:2 度的分形为:如果 B (n-1) 表示 n-1 度的分形,则 n 度的分形递归定义如下:要求给定分形的度,输出相应的分形图。输入描述多组输入,每组输入一个正整数 n输出描述对应于每组数,输出相应的分形图,并用一个 “-” 分隔样例输入样例输出代码如下......原创 2022-06-09 18:22:32 · 613 阅读 · 0 评论 -
P1490 机器人捡垃圾 OJ
如果这个题是说机器人随机移动,那么就很难求解了。但是机器人的移动受到了限制,只能向下和向右移动。这就和动态规划的dp数组复制方向恰好一直。由此联想到使用dp动态规划来做。某一个点(i,j)只能通过机器人从上面,或者左面走来。因此假设机器人走到(i-1,j)也就是左边的时候,捡到的垃圾数量是dp[i-1][j]的话,显然走到(i,j)时捡到的垃圾的数量 dp[i][j] 就等于 d[i-1][j] + matrix[i][j] 。很容易可以想到状态转移方程应该是...原创 2022-06-10 20:49:16 · 895 阅读 · 0 评论 -
八皇后问题 皇后排列问题 OJ
首先找到第一个皇后的位置。然后在这个皇后的下一行(需要对棋盘长度取余)进行遍历,寻找下一行哪一个符合与皇后不同行、同列、同对角线。如果找到了,就让皇后数量count++,然后将找到的新的可以放置的皇后的位置的横纵坐标输入进函数继续迭代。直到找到8个皇后,就可以停止辽。按照历史上,数学家通过图论的解法得出,空棋盘摆放皇后的可能方式一共有92个。题目描述国际象棋的棋盘可以看做是一个 8 × 8 的矩阵,上面每一个格子仅能放一枚棋子,现在给出一个 8 × 8 的由 0 和 1 组成的矩阵,代表象棋棋盘,1 代表当原创 2022-06-04 20:17:29 · 810 阅读 · 0 评论 -
P1029 滑雪 OJ
题目描述小明喜欢滑雪,为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。小明想知道在一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子:一个人可以从某个点滑向上下左右相邻四个点之一,当且仅当高度减小。在上面的例子中,一条可滑行的滑坡为 . 当然 更长。事实上,这是最长的一条.输入描述输入的第一行表示区域的行数 RRR 和列数 CCC (1≤R,C≤1001 \leq R, C \leq 1001≤R,C≤100原创 2022-06-09 16:43:01 · 918 阅读 · 1 评论 -
P1344 最长回文长度 OJ 求解连续和不连续回文子串长度
在学校做OJ的时候偶然遇到一到求回文子串的题。研究发现,分为连续和不连续回文子串两种求解情况。推荐参考这篇(算法:最长回文长度_hairuiJY的博客-优快云博客_最长回文串长度)和(最长回文子序列问题(两种方法) | 春水煎茶 - 王超的个人博客);这里的连续意思是,子串的取法,必须是相邻的字符组成。不连续这和下面这道题一样,从原字符串中抽取一部分字符组成新的子串。或者如题所述相当于删去一部分字符,剩下的为子串。首先求解连续的回文子串代码如下原创 2022-05-28 21:27:02 · 1058 阅读 · 0 评论 -
P1226 数字合并 OJ
算法描述将每个数字读入之后,通过自定义的比较算法cmp进行排序sort。以49和494比较,可以看出来,想要让合并后的数字达到最大,必须要让 49大于494。也就是说假如一个数和另一个数前n位都一样,则后几位中需要有一个数字必须比前n为都大。在这样的排序规则下,48 小于 489。48 小于 4889。因此比较算法就是,先比较相同位数的前n位,然后比较后length - n 位,后面几位只要有一个大于前n位的所有数字就可以判断大小了。题目描述输入描述输出描述样例输入样例输出代码如下...原创 2022-06-06 08:53:35 · 876 阅读 · 1 评论 -
P1218 神兽的粉丝
题目描述有 n (n < 100) 只羊驼,他们两两之间有的相互仰慕,有的单方面仰慕,有的则不存在仰慕关系。设有两只羊驼 A 和 B,A 是 B 的粉丝,当且仅当羊驼 A 仰慕羊驼 B 但是羊驼 B 不仰慕羊驼 A。...原创 2022-06-03 21:24:27 · 158 阅读 · 0 评论 -
P1204 电池的寿命
题目描述Steven 买了一个模型直升机,这架飞机由两节 5 号电池供电。为了保证能够长时间飞行,他买了很多 5 号电池。这些电池的生产商不同,质量也有差异,因而使用寿命也有所不同。有的能使用 5 个小时,有的可能就只能使用 3 个小时。显然如果他只有两个电池,一个能用 5 小时一个能用 3 小时,那么他只能进行 3 个小时的驾驶飞行,有一个电池剩下的电量无法使用。但是如果他有更多的电池,就可以更加充分地利用它们。比如他有三个电池分别能用 3、3、5 小时,他可以先使用两节能用 3 个小时的电池,使用半原创 2022-06-03 21:25:59 · 843 阅读 · 0 评论 -
P1688 餐厅点餐 OJ
题目描述因疫情原因,同学们只能在学校食堂就餐,学校为了保证同学们的就餐,准备了各种食品供大家选择。在学校餐厅,有 a 种汤,b 种饭,c 种面条,d 种荤菜,e 种素菜。为了保证膳食搭配,小王每顿饭都会点 1~2 样荤菜,1~2 样素菜(不重复)。同时,在小王心情好的时候,会点一样饭,再配上一种汤。在心情不好的时候,就只吃一种面条。因为经济有限,小王每次点餐的总价在 min~max 之间。小王想知道,总共有多少种不同的点餐方案。输入描述输入数据第一行包含一个整数 T,表示测试数据的组数,对于每组测试数据:原创 2022-06-10 20:13:27 · 1114 阅读 · 0 评论 -
P1293 放苹果
算法描述:主要难点在于找到递推方程式和边界函数。举例说明,2个苹果放在8个盘子里面,有6个盘子都用不到。所以与只考虑2个盘子一样。2个苹果放在2个盘子里,显然只有2种放法,1-1 或者 2-0。也就是只用两种,所有盘子全用上,和有n个盘子没用上。这就是这个算法设计的精妙之处了。如何设计使得递归是能遍历到所有情况?我暂时还没有完全理解,这位老师的方法是 k个盘子的情况 = 盘子数减一的情况 + 本次盘子数的情况。思来想去觉得十分精妙,恰好每一次计算了 规模小1的情况 和 本次规模(为k)的情况,而下一次规模小原创 2022-06-05 10:38:30 · 432 阅读 · 0 评论 -
P1268 连续子段的最大和 OJ
题目描述从一组数据(长度为 n,其中 n原创 2022-06-03 21:46:11 · 252 阅读 · 0 评论 -
P1424 幂积序列 OJ
题目描述:输入描述输出描述样例输入:样例输出:代码如下原创 2022-06-05 19:21:10 · 147 阅读 · 0 评论 -
P1176 小孩报数问题 OJ
题目描述有 N 个小孩围成一圈,给他们从 1 开始依次编号,现指定从第 W 个开始报数,报到第 S 个时,该小孩出列,然后从下一个小孩开始报数,仍是报到 S 个出列,如此重复下去,直到所有的小孩都出列(总人数不足 S 个时将循环报数),求小孩出列的顺序。输入描述第一行输入小孩的人数 N(N<=64)接下来每行输入一个小孩的名字 (人名不超过 15 个字符)最后一行输入 W,S (W < N),用逗号 "," 间隔输出描述按人名输出小孩按顺序出列的顺序原创 2022-05-28 14:26:12 · 874 阅读 · 1 评论 -
P1199 最简真分数 OJ
题目描述给出 n 个正整数,任取两个数分别作为分子和分母组成最简真分数,编程求共有几个这样的组合。输入描述有多组测试数据,每组测试数据有两行。第一行为一个整数 n (n <= 600)。在第二行中有 n 个以空格分隔的不同的整数(大于等于 1 且小于等于 10, 000)。当 n = 0 时,程序结束,不需要处理这组数据。输出描述每行输出最简真分数组合的个数样例输入73 5 7 9 11 13 1532 4 5原创 2022-05-28 17:23:46 · 352 阅读 · 0 评论 -
P1430 油桶问题
题目描述:输入描述输出描述样例输入:样例输出:代码如下原创 2022-06-05 20:33:42 · 500 阅读 · 0 评论 -
P1468 高逐位整除数 OJ
题目描述输入描述输出描述样例输入样例输出代码如下原创 2022-06-09 20:45:20 · 399 阅读 · 0 评论 -
P1208 采药 OJ 动态规划解决O-1背包问题
动态规划解决O-1背包问题原创 2022-05-28 16:31:19 · 621 阅读 · 2 评论 -
P1509 超级幂 OJ
题目描述输入描述输出描述样例输入样例输出代码如下原创 2022-06-06 08:14:04 · 384 阅读 · 0 评论 -
P1278 蛇形方阵 OJ
题目描述输出一个 n 阶方阵,其元素排列方式为:从左上角开始按列顺序呈现出蛇形。如: 1 20 21 40 41 60 61 80 81 100 2 19 22 39 42 59 62 79 82 99 3 18 23 38 43 58 63 78 83 98 4 17 24 37 44 57 64 77 84 97 5 16 25 36 45 56 65 76 85 96 6 15 26 35 46 55 66 75 86 95 7原创 2022-05-08 17:05:56 · 630 阅读 · 0 评论 -
P1141 Caesar密码 OJ
题目描述Julius Caesar 生活在充满危险和阴谋的年代。为了生存,他首次发明了密码,用于军队的消息传递。假设你是 Caesar 军团中的一名军官,需要把 Caesar 发送的消息破译出来、并提供给你的将军。消息加密的办法是:对消息原文中的每个字母,分别用该字母之后的第 5 个字母替换(例如:消息原文中的每个字母 A 都分别替换成字母 F,V 替换成 A,W 替换成 B ......),其他字符不变,并且消息原文的所有字母都是大写的。例:密码字母:A B C D E F G H原创 2022-05-28 13:51:34 · 1011 阅读 · 0 评论 -
P1118 ISBN号 OJ
题目描述每一本正式出版的图书都有一个 ISBN 号码与之对应,ISBN 码包括 9 位数字、1 位识别码和 3 位分隔符,其规定格式如 “x-xxx-xxxxx-x”,其中符号 “-” 是分隔符(键盘上的减号),最后一位是识别码,例如 0-670-82162-4 就是一个标准的 ISBN 码。ISBN 码的首位数字表示书籍的出版语言,例如 0 代表英语;第一个分隔符 “-” 之后的三位数字代表出版社,例如 670 代表维京出版社;第二个分隔之后的五位数字代表该书在出版社的编号;最后一位为识别码。识别码原创 2022-05-25 17:32:57 · 382 阅读 · 0 评论