ZYCwuque
ZYCwuque
全部文章
分类
归档
标签
去牛客网
登录
/
注册
ZYCwuque的博客
全部文章
(共147篇)
题解 | 数组翻转
这题其实题意是很好理解的,每个值乘以该值与其最长的两个连续长度,然后求出这样的最大值,这题的难点其实就是如何去记录最长的两个字段长度,我们在这里选择Map,其类型为<Integer,int[]> ,装的数组是一个长度为2的数组,表示最长的两个长度然后就需要遍历数组,求出每一个连续字段的长...
2026-03-28
0
22
题解 | 魔法科考试
这题对时间要求很高,很多复杂度高的算法都不能使用首先是判断是否为质数,传统判断方法不能用,会超时,应当使用埃氏筛然后是判断不重复的数量,如果使用Set就会超时,应当使用布尔数组来存储存在情况总体来说,这题还是很看重时间复杂度优化的 import java.util.Arrays; import j...
2026-03-26
0
20
题解 | 电池分组
这题纯是考察异或和的性质,如果一个序列能够拆分成两个异或和相等的序列,假设这两个序列的异或和为x,那么x^x=总的序列和y,而根据异或的性质,x^y=x,也就是异或可交换,那么y==0即可,所以直接判断y是否为0就能判断最终答案下面程序中如果使用dfs,那么只能过一个测试点,其它都会超时 impo...
2026-03-26
0
17
题解 | 消失的蓝宝
去年做这题时,我对BigInteger的用法还不太熟练,但是知道该使用这个,一直以为这题结果就是A*B,觉得是这道题让自己止步省二,如今算法水平已经提升了很多,再一次看这道题,发现没那么简单,终于算是释怀了好了,讲讲我现在对这题的理解既然N+A是B的倍数,N+B是A的倍数,那么我们就设N+A=K*B...
2026-03-26
0
22
题解 | 放苹果
这题属于整数划分,就是将m划分成最多n个数,问有多少种分法,我们选择使用动态规划去做dp[i][j]表示i个盘,j个苹果先初始化,如果苹果数量为0,那么就一定是只有一种,全空的情况然后进行递推,当苹果数量大于盘子的数量时,有两种,一种是所有盘子都用上,那么就是dp[i][j-i],因为这种情况每个盘...
2026-03-26
0
21
题解 | 好多次方
根据费马小定理,a^(p-1)mod m =1;所以指数部分经过p-1次会重来,所以对于指数部分是对p-1取模对于整体就是对p取模P=1000000007;但是对于质数取模有一点需要特判,如果取完模后发现指数部分为0,那么需要看底数是否为0,如果底数为0,那么结果应当是0,而不是1,如果不特判就会输...
2026-03-26
0
18
题解 | 【模板】分数取模
经典的分数取模,不能直接除,要使用模逆元改为相乘的形式,然后a乘b的模逆元后还要加上模数,因为a可能是负数,这是取余的一个性质,最后还要再取模 import java.math.BigInteger; import java.util.Scanner; public class Main { ...
2026-03-25
0
18
题解 | 子数列求积
这一题看题目很容易想到要使用前缀积,但是在求区间乘积的时候,会用到除法,这就不能单纯除,而是应该改成乘上模逆元,在Java中,求模拟元可以使用BigInteger自带的方法,modInverse(mod),这样就可以省略很多代码最后输出结果就行 import java.math.BigIntege...
2026-03-25
0
20
题解 | 【模板】快速幂Ⅰ ‖ 模小整数
这一题是快速幂的模板大概思路就是,如果指数是奇数,那么res=(res*a)%p;然后就a=(a*a)%p;b=b/2;一开始的res就要对p取模,这是为了防止p为1这种情况,当p为1时,任何数取模后都输出0;要注意这几个地方都要取模,不然答案就可能出错 import java.util.Scan...
2026-03-25
0
24
题解 | 斐波那契数列
这个就是一个很典型的斐波那契数列,直接遍历就好了 import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stu...
2026-03-25
0
21
首页
上一页
1
2
3
4
5
6
7
8
9
10
下一页
末页