- 博客(31)
- 收藏
- 关注
原创 洛谷P8685 [蓝桥杯 2019 省 A] 外卖店优先级
本题思路:首先暴力但是复杂度是n*T的,所以我们要优化:由于我们把有记录和没有记录的时间点都遍历了一遍,自然浪费时间,所以我们可以只查找这家店有记录的时间点,没有用的点,我们用减法就能求出。注意:由于所有的店铺都相互之间是没有关联的。所以分开单独求。时间节点是有顺序的,所以我们需要排序。
2024-08-08 15:13:29 346
原创 洛谷P1596 [USACO10OCT] Lake Counting S
这种普通走迷宫的题,还是最好用bfs,毕竟复杂度是比dfs低的。但我这用dfs讲解。具体思路就不做详解,看代码注释。
2024-08-07 15:27:48 548
原创 洛谷B3621枚举元组
一道经典dfs题,很简单就是让你求1~k能组成多少个n位数。当然耐心足够的朋友可以尝试打表。dfs思路:1.定义数组a来存储每一次的组合,其中 a[i]表示第i位的数字;3.递归一定要设定终止条件:如果枚举到了n+1位时,输出数组 a 并 return。
2024-08-07 15:17:05 257
原创 洛谷P7243 最大公约数
为了方便理解,我们先画个图现在就好理解了吧,以x,y为中心每一天就往外扩一层,求x,y=1时是第几天。代码也是很好写的,只需要在BFS模板中加个__gcd函数求公约数就行了。
2024-08-06 15:50:16 305
原创 P1699 [USACO19OPEN] Bucket Brigade B
这题花里胡哨的,简化题意一句话:B到L最少的步数,R处不能走。那么就只需要记录起点、终点位置,套BFS模板就行了。
2024-08-06 15:38:56 265
原创 洛谷P3818小A和uim之大逃离 II
vis前两维记录坐标,第三维记录是否用过药水,然后bfs即可,注意数组越界问题。注意如果一个点用过了药水,则他所有可以扩展的点的状态都是喝过的,就是flag=1,不能再用药水了,不用再搜。这个点没用过的话,它扩展的点的既有不用的(上下左右),也有用药水的,都要入队。
2024-08-06 15:34:33 308
原创 P6207 [USACO06OCT] Cows on Skates G
Farmer John 把农场划分为了一个r行c列的矩阵,并发现奶牛们无法通过其中一些区域。此刻,Bessie 位于坐标为11的区域,并想到坐标为rc的牛棚享用晚餐。她知道,以她所在的区域为起点,每次移动至相邻的四个区域之一,总有一些路径可以到达牛棚。这样的路径可能有无数种,请你输出任意一种,并保证所需移动次数不超过100000。
2024-08-05 11:31:51 504
原创 P1123 取数游戏
一个N×M的由非负整数构成的数字矩阵,你需要在其中取出若干个数字,使得取出的任意两个数字不相邻(若一个数字在另外一个数字相邻8个格子中的一个即认为这两个数字相邻),求取出数字和最大是多少。
2024-08-05 10:35:07 1609
原创 洛谷[NOIP2001 普及组] 最大公约数和最小公倍数问题
输入两个正整数x0y0,求出满足下列条件的PQPQ是正整数。要求PQ以x0为最大公约数,以y0为最小公倍数。试求:满足条件的所有可能的PQ的个数。
2024-08-02 13:29:39 1852
原创 洛谷P8649 [蓝桥杯 2017 省 B] k 倍区间
给定一个长度为N的数列,A1A2⋯AN,如果其中一段连续的子序列AiAi1⋯Aji≤j之和是K的倍数,我们就称这个区间ij是K倍区间。你能求出数列中总共有多少个K倍区间吗?
2024-08-01 11:42:27 333
原创 洛谷P2280 [HNOI2003] 激光炸弹
一种新型的激光炸弹,可以摧毁一个边长为m的正方形内的所有目标。现在地图上有n个目标,用整数xiyi表示目标在地图上的位置,每个目标都有一个价值vi。激光炸弹的投放是通过卫星定位的,但其有一个缺点,就是其爆破范围,即那个边长为m的边必须与x轴,y轴平行。若目标位于爆破正方形的边上,该目标不会被摧毁。现在你的任务是计算一颗炸弹最多能炸掉地图上总价值为多少的目标。可能存在多个目标在同一位置上的情况。
2024-08-01 11:35:11 355
原创 洛谷P9533 [YsOI2023] 区间翻转区间异或和
现在符卡可以使用任意次数的魔法,符卡希望最后得到的数组的灵异区间数量能够尽可能多,你能告诉她最后最多有多少个灵异区间吗?区间是灵异区间,那么符卡就可以对这个区间使用魔法,整个数组就会变成。输出一行一个整数,表示符卡使用任意次魔法后灵异区间最多有多少个。这题是个经典前缀和,但处理完要异或,而且要开long long。灵异区间的名字其实是“零异(或)区间”的谐音。,这个数组共有两个灵异区间,分别是。无论符卡发动多少次魔法,数组都是。发动魔法,得到的新数组是。符卡有特殊的魔法,可以把。只有两种可能的取值。
2024-08-01 11:25:16 875
原创 洛谷P6568 [NOI Online #3 提高组] 水壶
这道题别看题目很难,实际上这题概括一下就是喊你找一个区间并且前缀和最大。前缀和通用模板在我之前的博客里,这里就不写了。主要注意求区间的方法,求出来如何计算区间前缀和。求出区间以后去寻找所有区间前缀和的最大值,最后输出。
2024-07-31 15:14:51 176
原创 洛谷P9094 [PA2020] Mieszanie kolorów
这对于这道题很多人可能都没搞懂怎么用前缀和解决,其实我们可以用3个数组分别记录红黄蓝三种颜色,但他只问绿色,所以最后在统计仅有黄蓝的桶数就行了。话不多说直接上代码。
2024-07-31 11:39:59 186
原创 洛谷P6625 [省选联考 2020 B 卷] 卡牌游戏
这题别看题目有点长并且是个省选联考题,其实总结下来就一句话:求前缀和中所有不为负数的前缀和的和。那么总结完题目这题就简单多了。接下来只需要按照题目要求从2开始遍历前缀和数组,将所有不为负数的数加起来就好了。接下来上代码。
2024-07-31 11:21:27 252
原创 洛谷P1009 [NOIP1998 普及组] 阶乘之和
n的阶乘=n*n-1*n-2...*2*1从上面的公式可知一个数的阶乘就是从此数乘到1。那么知道了这个公式,这题就很简单了。但是S=1!+2!+3!+⋯+n!(n≤50)明显这数据,long long来了都救不了。所以也只能用高精度。不知道高精度的可以先去学一下,免得看不懂代码。因为高精度的原因,所以要用string。还需要注意long long(int)的转换。
2024-07-30 15:15:16 108
原创 洛谷P1055 [NOIP2008 普及组] ISBN 号码
题意概括:给你一个ISBN编码,判断它是否正确,如果不正确,则改为正确的。这题非常简单,按照题目规则计算结果,然后判断是不是正确,否则改正。直接上代码。
2024-07-30 14:42:28 405
原创 洛谷P1035 [NOIP2002 普及组] 级数求和
这几道NOIP的题,题面都挺直观,所以就没有题目概括,偷个小懒。具体来说,就是喊你找到1分之1加到n分之1,n等于几时大于k。上代码。
2024-07-30 13:52:43 215
原创 洛谷P2669 [NOIP2015 普及组] 金币
这题也是道模拟题,直接按题目给的方法,模拟就行。当然如果你认为你的毅力足够强大,也可以尝试打表。具体思路看代码注释接下来上代码。
2024-07-30 13:39:05 136
原创 洛谷P1179 [NOIP2010 普及组] 数字统计
[NOIP2010 普及组] 数字统计题意题目给的很直观,就不概括了,先看题:给定范围 [2, 22],数字 2 在数 2 中出现了 1 次,在数 12中出现 1 次,在数 20 中出现 1 次,在数 21 中出现 1 次,在数 22 中出现 2 次,所以数字 2 在该范围内一共出现了 6 次。本质上是到数学题,编程中模拟就可以实现了。我们可以用数位分解来判断,这个数中有没有出现2,出现了几次。并用计数器统计。题目是求给L,R的区间内有几个2所以任用for。
2024-07-30 12:04:31 246
原创 洛谷P2010 [NOIP2016 普及组] 回文日期
给我们2个8位数,两个8位数之间有多少个回文数,这里要注意因为是日期,不能挨个遍历。所以我们可以定义一个数组,根据洛谷管理员给的提示,可以知道判断后四位(月份+日期)会更快。然后看求出日期是否是我们需要的就行了,至于回文就一个数或字符串正着读或反着读都一样就叫回文。
2024-07-30 11:51:33 205
原创 洛谷B3939 [GESP样题 四级] 绝对素数
题意概括:就是求A到B的区间内有那些绝对素数,绝对素数指一个数的数位交换后任是素数的数(仅限两位数)。11 20111317作者的代码可能有点复杂,所以先讲简单做法。
2024-07-29 15:37:26 383
原创 洛谷B3850 [GESP202306 四级] 幸运数
PS:我朋友说可以写些常见的题,但我觉得我做的题都有点冷门,所以目前只能写GESP,有题推荐的话,可以把题号打讨论里,我尽量去写。吐槽结束,接下来进入正题。
2024-07-29 14:38:05 290
原创 洛谷B3869 [GESP202309 四级] 进制转换
题意概括:大概意思就是叫你将n个K进制的数转换为10进制这题有个坑点,他没说数据范围,但我觉得开long long肯定是没有问题的(开int爆零)。先看样例:7541008具体思路的话就不写代码里了,思路如下:(1):由于是多组输入,while是必有的(不习惯用while的可以用for)(2):因为16进制的原因,所以输入要用string,当然输入进来的进制还是long long的.(3):写一个函数进行转换,要将k,num传进去,转换内部主要判断10进制以上和以下的判断方法。
2024-07-29 11:26:49 477
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人