![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
蓝桥杯备战
wniuniu_
https://niuniu0101.github.io/
展开
-
快速幂 算法
我们注意到 (a * b) % c = (a % c + b % c ) % c。我们可以每次for循环中 对 ans 取模一次。不过时间复杂度还是没有优化。我们可以采用暴力算法。不过这样肯定会超时的。原创 2024-01-20 15:25:59 · 363 阅读 · 0 评论 -
蓝桥杯备战 每日一题 (4)
然后这个题目要怎么分析呢,首先的话 边长 为 n - 1 ,因为每边都是 n 个点,这是要注意的地方,然后我们每次只考了边长为 i 的正方形,发现有 n - i 个,包括自身以外,还有 i- 1 个斜着的正方形。我们可以每次计算就可以取余一次,这样就保证了最后取余的结果和一起相加再取余的结果一样。1 加法:(a+b)%m=(a%m+b%m)%m。2 减法:(a-b)%m=(a%m-b%m)%m。3 乘法:a*b%m=(a%m)*(b%m)%m。首先我们要有一个知识储备。原创 2024-01-20 10:45:45 · 695 阅读 · 0 评论 -
蓝桥杯备战 每日一题 (3)
那么对于两台手机测试 i 次能测试的高度,一个测试高度包括什么,包括如果每次在 m = n /2 处测试的时候,用一部手机用 i -1 次可以测试完剩下的手机,如果是第一次摔坏了,还能测试 i - 1 ,加上第一次测试的,就测试了 i 层,如果没摔坏,那么可以视作用 两台手机测 i -1 次,即 a[i-1] 层。如何分析这个问题呢,咋一看如果采用二分的话,由于只给了三个测试样品,这样会导致三个测试样品根本不够用,那么应该怎么操作呢?所属于类型:动态规划。原创 2024-01-20 09:46:05 · 716 阅读 · 0 评论 -
处理好 c++ 数组初始值的问题
如果初始部分的值的话,分两种情况,如果是 b[0] = 1 ,b[1] = 2 这种初始方式的话,其他没有初始的位置还是随机的值。如果是 int c[10] = { 1,2 } 这种初始化方法的话,那么没有初始化的地方,会默认为 0。如果是全局变量没有初始化,例如 a[10] 那么里面的所有值都默认为 0。我们来看看上面的代码,上面的代码输出是什么,如何处理默认值的问题呢。对于局部变量b[10] ,如果不初始化,那么就是随机的值。原创 2024-01-19 20:14:11 · 471 阅读 · 0 评论 -
如何使用万能头 #include<bits/stdc++.h>
它是C++中支持的一个几乎万能的头文件,几乎包含所有的可用到的C++库函数。以后写代码就可以直接引用这一个头文件了,不需要在写一大堆vector、string、map、stack……我们需要找到下面类似这个路径,大家的路径可能不太一样,不过都包含 VC\Tools\MSVC 和 include 这两个子路径。准备蓝桥杯的时候看到了很多头文件包含了这个头文件,后来查了一下。然后在 vc 里面写代码的时候就可以用这个头文件了。找到这个路径以后我们需要新建一个文件夹 bits。我们该如何使用这个头文件呢?原创 2024-01-19 19:30:09 · 1975 阅读 · 0 评论 -
蓝桥杯备战 每日一题 (2)
迭代更新最短路径:通过遍历所有节点,对于每一对节点 (i, j),检查是否存在一个中间节点 k,使得从节点 i 到节点 j 经过节点 k 的路径长度比直接从 i 到 j 的路径更短。如果存在这样的中间节点 k,则更新距离矩阵中节点 i 到节点 j 的最短路径长度为经过节点 k 的路径长度。算法的基本思路是通过逐步迭代更新节点对之间的最短路径长度,直到得到所有节点对之间的最短路径。初始时,距离矩阵的值为图中节点之间的直接距离,如果两个节点之间没有直接边相连,则距离为无穷大。有一个小细节,初始化数组的时候。原创 2024-01-19 18:48:41 · 682 阅读 · 0 评论 -
蓝桥备战 每日一题 (1)
5 的上标是 2 ,所以会有两次贡献,然后就使用二分的方法来完成就行,还有 处理 mid 的时候,没有使用 ( s + r ) / 2, 这是因为如果 s 和 r 很大的话,相加起来可能会超过 long long的范围。这个代码比较难以懂的就是 query 函数那里求解 从 1 到 n 中是 5 的倍数的累加,这里不是单纯的累加,如果一个数 是 25 ,那么这个数 对 5 的累加可以贡献两次,因为。原创 2024-01-17 16:03:35 · 442 阅读 · 0 评论