alij
alij
全部文章
分类
归档
标签
去牛客网
登录
/
注册
alij的博客
全部文章
(共8篇)
题解 | #剩下的数#
tag:鸽巢原理 令,根据可以有下面两种情况: 如果,那么可以把所有数都选了; 否则,那么我们是否可以找到一个数取模等于呢?结论是一定可以的,将都对取模,因为,所以区间对取模后会包含所有,所以我们一定可以找到一个数,所以最终只会剩下这一个数。 因此如果,输出1;否则输出0。 #include &...
2025-12-17
0
8
题解 | #斐波那契数列#
对于,我们用递归完全可行,时间复杂度为,代码: #include <iostream> using namespace std; const int N=1e6+9,mod=1e9+7; int memo[N]; int f(int n){ if(n<=2) return ...
2025-12-11
0
8
题解 | #括号匹配深度#
区间dp,栈 我们开一个数组表示和第个位置配对的位置,即是一个配对的括号,同时把这些配对的二元组加进中,之后按照从小到大排序,即我们先处理长度为2的括号,接着长度为4,6等等。 我们同时开一个表示区间的深度,对于长度为2的区间,我们直接让,对于区间长度大于的区间,我们枚举中间的合法区间分界处,令,那...
2025-12-11
0
10
题解 | #素数对#
我们要找这样的素数对,都为质数,且满足: 现在给定,求以内的素数对。 首先因为都是质数,所以我们先用线性筛把以内的质数都给预处理出来。 观察式子,可以发现,所以我们直接考虑暴力枚举,这时候就变成了在以内找到两个数的和等于一个的经典问题,我们可以使用一个来优化这个匹配,也就是再枚举,然后检查在...
2025-12-10
0
13
题解 | #小苯的数字权值#
,随便举几个例子,可以发现结论: 当时,我们把全部拆开,这样可以得到权值是; 当时,全部拆开得到的权值,合并全部得到的权值为,后面明显更大,而且发现如果将进行拆分,那么一定不会更优。 所以写的时候只需要注意特判就好。 #include <iostream> #include <...
2025-12-10
0
11
题解 | #分解质因数#
这道题只要知道一个结论后就可以做了,对于一个数,其质因数最多有一个大于的,这个通过反证法也很容易证明。 知道这个后,,所以我们只需要预处理出以内的所有质数即可,时间复杂度为。 #include <iostream> #include<vector> using namespa...
2025-12-10
0
12
题解 | #阶乘末尾非零数字#
众所周知,末尾有多少个连续0,相信大家都会求,就是统计2和5的个数,那么连续0的个数也就为。 那么这道题我们只需要统计一下2和5的个数,然后将其他所有数乘起来,每次模10,最后补上剩余的2的个数。 让我们来分析一下时间复杂度,大概应该是,对于,按道理不能过呀,为什么跑的这么快呢?63ms就过了!!!...
2025-12-10
0
12
题解 | #买橘子#
这道题要求,其中,对于这道题的,我们完全可以直接枚举就行,如果,那么。 时间复杂度为,对于完全足够了。 但是当级别时,这样暴力枚举显然不行,就需要用到用来判断是否有解,以及其通解形式。 int exgcd(int a,int b,int& x,int& y){ if(!b){ ...
2025-12-03
1
13