算法
wanghaoda(QAQ)
这个作者很懒,什么都没留下…
展开
-
求最长不下降序列 动态规划
【题目描述】设有由n(1≤n≤200)个不相同的整数组成的数列,记为:b(1)、b(2)、……、b(n)若存在i1<i2<i3<…<ie 且有b(i1)<=b(i2)<=…<=b(ie)则称为长度为e的不下降序列。程序要求,当原数列出之后,求出最长的不下降序列。例如13,7,9,16,38,24,37,18,44,19,21,22,63,15。例中13,16,18,19,21,22,63就是一个长度为7的不下降序列,同时也有7 ,9,16,18,19,21原创 2022-03-06 14:28:04 · 311 阅读 · 0 评论 -
数字金字塔 动态规划
【题目描述】观察下面的数字金字塔。写一个程序查找从最高点到底部任意处结束的路径,使路径经过数字的和最大。每一步可以从当前点走到左下方的点也可以到达右下方的点。在上面的样例中,从13到88到26到15到24的路径产生了最大的和86。【输入】第一个行包含R(1≤R≤1000),表示行的数目。后面每行为这个数字金字塔特定行包含的整数。所有的被供应的整数是非负的且不大于100。【输出】单独的一行,包含那个可能得到的最大的和。【输入样例】51311 81原创 2022-03-06 13:12:33 · 628 阅读 · 0 评论 -
采药 NOIP2005普及组
【题目描述】辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。”如果你是辰辰,你能完成这个任务吗?【输入】第一行有两个整数T(1≤T≤1000)和M(1≤M≤100)原创 2021-08-22 12:08:05 · 126 阅读 · 0 评论 -
守望者的逃离 NOIP2017普及组
【题目描述】恶魔猎手尤迪安野心勃勃.他背叛了暗夜精灵,率领深藏在海底的娜迦族企图叛变。守望者在与尤迪安的交锋中遭遇了围杀.被困在一个荒芜的大岛上。为了杀死守望者,尤迪安开始对这个荒岛施咒,这座岛很快就会沉下去,到那时,岛上的所有人都会遇难。守望者的跑步速度,为17m/s17m/s, 以这样的速度是无法逃离荒岛的。庆幸的是守望者拥有闪烁法术,可在1s1s内移动60m60m,不过每次使用闪烁法术都会消耗魔法值1010点。守望者的魔法值恢复的速度为44点/s/s,只有处在原地休息状态时才能恢复。现在已知原创 2021-08-20 13:08:28 · 45 阅读 · 0 评论 -
装箱问题 NOIP2001普及组
【题目描述】有一个箱子容量为V(正整数,0≤V≤20000),同时有n个物品(0≤n≤30),每个物品有一个体积(正整数)。要求从n个物品中,任取若干个装入箱内,使箱子的剩余空间为最小。【输入】第一行是箱子的容量,第二行是n(表示n有n个物品),接下来n行是n个物品的体积。【输出】最小空间【输入样例】2468312797【输出样例】0算法解析一道经典的01背包问题。先枚举物品体积,再枚举花费,完成决策状态转移方程:f[j]=max原创 2021-11-18 21:33:29 · 276 阅读 · 0 评论 -
过河卒 NOIP2002普及组
【题目描述】如图,A点有一个过河卒,需要走到目标B点。卒行走的规则:可以向下、或者向右。同时在棋盘上的任一点有一个对方的马(如上图的C点),该马所在的点和所有跳跃一步可达的点称为方马的控制点。例如上图C点上的马可以控制9个点(图中的P1,P2...P8和C)。卒不能通过对方的控制点。棋盘用坐标表示,A点(0,0)、B点(n, m)(n,m为不超过20的整数,并由键盘输入),同样马 的位置坐标是需要给出的(约定:C≠A,同时C≠B)。现在要求你计算出卒从A点能够到达B点的路径的条数。【原创 2021-11-21 13:49:22 · 141 阅读 · 0 评论 -
蜜蜂路线 递推 高精度 斐波那契数列
蜜蜂路线 递推 高精度 斐波那契数列原创 2022-08-17 19:12:18 · 404 阅读 · 0 评论 -
Hanoi双塔问题 NOIP2017普及组
【题目描述】给定A,B,CA,B,C三根足够长的细柱,在AA柱上放有2n2n个中间有空的圆盘,共有nn个不同的尺寸,每个尺寸都有两个相同的圆盘,注意这两个圆盘是不加区分的(下图为n=3n=3的情形)。现要将这些圆盘移到CC柱上,在移动过程中可放在BB柱上暂存。要求:(1)每次只能移动一个圆盘;(2)A、B、CA、B、C三根细柱上的圆盘都要保持上小下大的顺序;任务:设AnAn为2n2n个圆盘完成上述任务所需的最少移动次数,对于输入的nn,输出AnAn。【输入】一个正整数nn,原创 2021-08-20 13:16:44 · 162 阅读 · 0 评论 -
Function 洛谷P1464
Function 洛谷P1464记忆化搜索原创 2022-07-31 14:32:13 · 231 阅读 · 0 评论 -
城堡(简略版) IOI1994 USACO
题目描述我们憨厚的USACO主人公农夫约翰(Farmer John)以无法想象的运气,在他生日那天收到了一份特别的礼物:一张“幸运爱尔兰”(一种彩票)。结果这张彩票让他获得了这次比赛唯一的奖品——坐落于爱尔兰郊外的一座梦幻般的城堡!喜欢吹嘘的农夫约翰立刻回到有着吹嘘传统的威斯康辛老家开始吹嘘了, 农夫约翰想要告诉他的奶牛们关于他城堡的一切。他需要做一些吹嘘前的准备工作:比如说知道城堡有多少个房间,每个房间有多大。 你的工作就是帮农夫约翰做以上的准备,算出房间数与房间的大小。城堡的平面图被划...原创 2021-10-07 10:37:50 · 86 阅读 · 0 评论 -
方格填数 NOIP1995普及组
在一个N*N(N<=10)的方阵中,填入1,2,……N*N个数,并要求构成如下的格式:例如:N=513 14 15 16 112 23 24 17 211 22 25 18 310 21 20 19 49 8 7 6 5N=616 17 18 19 20 115 30 31 32 21 214 29 36 33 22 313 28 35 34 23 412 27 26 25 24 511 10 9 8 7 6输入格式每个测试文件只包含一组测试数据,每组输入一个N。原创 2021-10-14 21:40:03 · 251 阅读 · 0 评论 -
判断元素是否存在 递归算法
【题目描述】有一个集合M是这样生成的:(1) 已知k是集合M的元素; (2) 如果y是M的元素,那么,2y+1和3y+1都是M的元素;(3) 除了上述二种情况外,没有别的数能够成为M的一个元素。问题:任意给定k和x,请判断x是否是M的元素。这里的k是无符号整数,x 不大于 100000,如果是,则输出YES,否则,输出NO。【输入】输入整数 k 和 x, 逗号间隔。【输出】如果是,则输出 YES,否则,输出NO。【输入样例】0,22【输出样例】YES原创 2021-11-18 21:44:23 · 154 阅读 · 0 评论 -
最少步数 广度优先搜索算法
【题目描述】在各种棋中,棋子的走法总是一定的,如中国象棋中马走“日”。有一位小学生就想如果马能有两种走法将增加其趣味性,因此,他规定马既能按“日”走,也能如象一样走“田”字。他的同桌平时喜欢下围棋,知道这件事后觉得很有趣,就想试一试,在一个(100×100)的围棋盘上任选两点A、B,A点放上黑子,B点放上白子,代表两匹马。棋子可以按“日”字走,也可以按“田”字走,俩人一个走黑马,一个走白马。谁用最少的步数走到左上角坐标为(1,1)的点时,谁获胜。现在他请你帮忙,给你A、B两点的坐标,想知道两个位置到(原创 2022-01-09 14:06:15 · 136 阅读 · 0 评论 -
奇怪的电梯 广度优先搜索算法
题目描述大楼的每一层楼都可以停电梯,而且第i层楼(1<=i<=N)上有一个数字Ki(0<=Ki<=N)。电梯只有四个按钮:开,关,上,下。上下的层数等于当前楼层上的那个数字。当然,如果不能满足要求,相应的按钮就会失灵。例如:3 3 1 2 5代表了Ki(K1=3,K2=3,……),从一楼开始。在一楼,按“上”可以到4楼,按“下”是不起作用的,因为没有-2楼。那么,从A楼到B楼至少要按几次按钮呢?输入格式输入文件共有二行,第一行为三个用空格隔开的正整数,表示N,A,B(1≤原创 2022-01-09 14:13:32 · 244 阅读 · 0 评论 -
细胞 广度优先搜索算法
【题目描述】一矩形阵列由数字0到9组成,数字1到9代表细胞,细胞的定义为沿细胞数字上下左右还是细胞数字则为同一细胞,求给定矩形阵列的细胞个数。如:阵列4 100234500067103456050020456006710000000089有4个细胞。【输入】第一行为矩阵的行n和列m;下面为一个n×m的矩阵。【输出】细胞个数。【输入样例】4 100234500067103456050020456006710000000089【原创 2022-01-09 13:31:06 · 270 阅读 · 0 评论 -
Dungeon Master 广度优先搜索算法
【题目描述】这题是一个三维的迷宫题目,其中用‘.’表示空地,‘#’表示障碍物,‘S’表示起点,‘E’表示终点,求从起点到终点的最小移动次数,解法和二维的类似,只是在行动时除了东南西北移动外还多了上下。可以上下左右前后移动,每次都只能移到相邻的空位,每次需要花费一分钟,求从起点到终点最少要多久。【输入】多组测试数据。一组测试测试数据表示一个三维迷宫:前三个数,分别表示层数、一个面的长和宽,后面是每层的平面图。前三个数据为三个零表示结束。【输出】最小移动次数。【输入样原创 2022-01-09 12:55:59 · 156 阅读 · 0 评论 -
算法略解——广度优先搜索
一、广度优先搜索广度优先搜索(宽度优先搜索)是最简便的图的搜索算法之一,这一算法也是很多重要的图的算法的原型,如Dijkstra最短路径算法、Prim最小生成树算法、SPFA最短路径算法等都有与广搜类似的思想。广搜采用队列实现,其核心思想是:从初始节点开始,生成第一层节点,检查目标节点是否在这些节点中,若没有,则在生成一层节点,以此类推。二、框架void bfs(){ 初始化,第一个元素入队并标记; head=0,tail=1; do { ...原创 2022-01-09 13:28:26 · 373 阅读 · 0 评论 -
金银岛 贪心算法
【题目描述】某天KID利用飞行器飞到了一个金银岛上,上面有许多珍贵的金属,KID虽然更喜欢各种宝石的艺术品,可是也不拒绝这样珍贵的金属。但是他只带着一个口袋,口袋至多只能装重量为w的物品。岛上金属有s个种类, 每种金属重量不同,分别为n1,n2,...,ns,同时每个种类的金属总的价值也不同,分别为v1,v2,...,vs。KID想一次带走价值尽可能多的金属,问他最多能带走价值多少的金属。注意到金属是可以被任意分割的,并且金属的价值和其重量成正比。【输入】第1行是测试数据的组数k,后面跟着原创 2022-01-07 08:42:26 · 287 阅读 · 0 评论 -
An Easy Problem 贪心算法
【题目描述】给定一个正整数N,求最小的、比N大的正整数M,使得M与N的二进制表示中有相同数目的1。举个例子,假如给定的N为78,其二进制表示为1001110,包含4个1,那么最小的比N大的并且二进制表示中只包含4个1的数是83,其二进制是1010011,因此83就是答案。【输入】输入若干行,每行一个数nn(1≤n≤1000000),输入"0"结束。【输出】输出若干行对应的值。【输入样例】1234780【输出样例】245883算法解原创 2022-01-06 09:25:02 · 417 阅读 · 0 评论 -
奖学金 NOIP2007普及组
【题目描述】某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金。期末,每个学生都有3门课的成绩:语文、数学、英语。先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规定学号小的同学 排在前面,这样,每个学生的排序是唯一确定的。任务:先根据输入的3门课的成绩计算总分,然后按上述规则排序,最后按排名顺序输出前五名名学生的学号和总分。注意,在前5名同学中,每个人的奖学金都不相同,因此,你必须严格按上述规则排序。例如,在原创 2021-08-22 12:13:03 · 123 阅读 · 0 评论