- 博客(29)
- 收藏
- 关注
原创 cf 练习3
设原本 有雪帽的点(设为1) 和 没有学帽(设为0)的点 差值为 dif当边长为k的矩阵覆盖后 , 设矩阵中有x1个有雪帽的点和 x2个没有雪帽的点 ,那么此时的dif 值 就会减少为 (x2 -x1)*x ,假设x2 -x1 = m1 , 有n个子矩阵 ,所以题目就转化成了是否存在x1 ,x2 ,x3 ...xn 使得 x1*m1 + x2*m2 + ....+xn*mn =dif这时,就需要用到裴蜀定理的推广 , 那么如果存在的话 , gcd(m1,m2..mn) | dif。
2024-08-08 20:16:51 878
原创 CF 训练2
思路:首先对于区间问题 , 我们可以先思考让它滑动滑动。对于[l,r],向后滑动一位后 ,[l+1 , r+1],因为两次的区间中 , [l+1 ,r]中所有数都是相同的 , 所以 可以得到s[l] = s[r+1] , 那么再向后滑动 , 就有 l+1 = r+2 , 一次类推 , 在1 ~ k中 , 每个数每次 +k , s[x] = s[x+k]的。那么我们就可以对于每个k的区间来进行处理 , 观察它们是否相同。但是对于?的话 ,我们可以先不管他,最后看1和0的个数是否都 <= k/2 就行了。
2024-08-02 13:01:50 621
原创 2024牛客暑期多校训练营 第四场
GHorse Drinks WaterG-Horse Drinks Water_2024牛客暑期多校训练营4 (nowcoder.com)这题就是初中学过的将军饮马问题,只需要走一遍x轴的 和一遍y轴 , 取小就可以了void solve(){ int x1, y1, x2, y2; cin >> x1 >> y1 >> x2 >> y2; double ret1 = (x2 - x1) * (x
2024-07-30 22:23:24 364
原创 CF训练1
看完题目之后 , 第一想法是最暴力的On3 , 对于每个i ,j ,k , 如果它们符合k的体积的话,我们就可以把这个长方体一格一格的移动 , 对于x方向 , 我们一共能移动a - i次 , 那么也就有a -i+1种方法放置 , y轴和z轴也是同理。当我们信心满满的交上去之后, 就会发现TLE了 , 那么我们可以优化一下On3的算法 , 优化成On2 ,枚举i j , 如果满足 k %(i *j) == 0的话 , 就可以得到k。
2024-06-26 18:25:43 468
原创 蓝桥杯14届A组题解(部分)
可以先判断这个数字的长度是奇数还是偶数,如果是奇数的话,就肯定不是了,如果是偶数的话,就有可能是,再次进行判断先判断奇偶,可以把数字转化成字符串判断接下来对偶数进行判断。
2024-03-31 17:19:49 235 1
原创 ABC 345(A - D)&& 搜索
a题很简单,有很多中方式可以做,我们可以先判断头尾是不是< 和> ,在判断中间=的个数看看它是否有n-2个。
2024-03-18 22:15:01 347
原创 补题日记(8)
区间和并就是给定n个区间将他们合并 , 我们可以使用PII类型的数组来存储每个数组的左端点和右端点,之后再将他们排序之后合并,下面是模板。
2024-03-12 20:57:01 334 2
原创 牛客小白月赛88DE 第七场蓝桥杯小白赛
在圆环中我们可以把1 - n ,定义成 0 - n-1。这样子在模n的意义下,就可以快速找到指针所在的位置,这题我们可以使用dp的方式,我们可以定义dp[n][n]表示在第n-1次是否走到了第n个位置,是的话就用1来表示,否则的话就用0来表示.
2024-03-10 20:00:41 255 2
原创 cf 909 div.3题解(A-E)
如果一开始那个数就可以被3取余数,瓦尼亚先手改变了他的值,这样的话,这个数就再也不能被3整除了。其实仔细一想 , 只有 2 , 4 , -1 , 1这种数字,改变一下就能被整除的数字,瓦尼亚可以一次改变获得胜利,剩下的所有数字,瓦尼亚都赢不了。
2024-02-15 20:56:32 274 2
原创 补题日记(8)(cf886 G H , 并查集和带权并查集习题)
当斜率为1时,我们可以推导出x1 + y1 = x2 + y2;斜率为-1时我们可以推导出x1 - y1 = x2 -y2;这样我我们可以使用map来记录一下x+y 和x - y和x和y如果有三个点,答案就是3+2+1 再 ×2,四个点就是 4+3+2+1,再×2。
2024-02-09 22:46:43 204 1
原创 补题日记(6)
我们可以考虑把s1的1变成0 或者把s1的0变成1 ,这样子,假设0变成1要3次,1变成0要两次,那么0变成1那三次刚好可有两次通过交换给0变成1那两次。还有一个直接加一个1即可,所以我们只需要统计0到1和1到0的次数再取大。使用贪心的思路,可以开一个t来统计时间。看两个时间段内,是关机耗费的电量少还是开机耗费的电量少,然后把少的那一个加到t少,最后比较即可。输出矩形的面积,我们只需要记录最大的x,y和最小的x,y就可以了。两个数组中的最大和最小配对,最小和最大配对。这道题要注意开long long。
2024-02-08 00:06:36 202
原创 补题日记(5)
看到这题我们就会想到分组背包这个模型。那么这题就很容易解决了,也是把背包里面的物品分成s组,每组可以最多选择一个,问可以选下的最大值。但是这题最麻烦的地方就是它的输入格式我们可以用一个vector数组来存储。然后就是分组背包的板子了那么这题就做完了,以下是ac代码。
2024-02-06 22:22:33 669 2
原创 补题日记(4)
st算法是基于倍增原理的算法,是解决RMQ问题的一个非常优秀的算法。那么我们先来介绍一下什么是RMQ问题。RMQ就是给一个静态的长度为n的序列,我们进行m次查询,每次查询区间l到r的最大值与最小值。最后就可以得到ma,那么它的时间复杂度是多少呢?比较的复杂度是O(n),m次查询,总的时间复杂度是O(mn),效率很低。有没有一种方法可以极大的提高效率呢?答案是有的,那就是st算法。
2024-02-04 22:18:21 599 1
原创 补题日记(3)
这个就是非常经典的问题了,昨天的文章中还写了变形的01背包问题,那么我们还是来介绍一下01背包这个问题吧。一个包的体积为V , 有n个物品 每个物品的价值为wi , 体积为vi,而且每个物品只能使用一次,问能装价值最多是多少?我们采用优化的 一维数组来解决这个问题i<=n;++i) //遍历物品j>=v[i];--j) //倒着遍历背包//v[i]表示单个物品的体积 w[i]表示单个物品的价值那么这种最基础的01背包也是非常简单的,一定要掌握。
2024-01-31 21:15:42 401
原创 补题日记(2)
首先用一点贪心算法的思想 , 我们知道,在倒水量(0,a)之间获得e的满意度,倒水量(a,c)的区间获得b的满意度,大于等于c获得d的满意度(以上括号都是左闭右开)。那么想要让倒水值尽可能小,我们就可以只选择0,a,c三个倒水量。通过以上分析,我们有0对应e的满意度 , a对应b的满意度 , c对应d的满意度,这里注意,不同于普通背包的是,在普通的01背包中, 我们可以选择一下物品不取,而在这里所有物品都需要取,也就是我们需要给所有人倒水,所以遍历方式可能就不一样。首先我们还是正常定义数组。
2024-01-30 23:01:54 843 2
原创 补题日记(1)
传送门首先呢,在这道题当中我们可以在每一科当中使用左右脑学习。1、假设一科的总时间是8,那么左脑4,右脑4,只需要4的时间2、假设一科总时间是9 ,左脑4,右脑5的话,需要5的时间那么我们只看一个脑子,设成dp数组,他越接近总时间的一半,所需要的时间就越小,因为奇数的取整问题,最小时间就可以表示为 总 - dp[sum / 2];以下请看AC代码。
2024-01-29 23:45:03 272 1
原创 二分+前缀和 牛客月赛86E题 可口蛋糕
来源:牛客网小蓝制作了 n个蛋糕并将其从左往右排成一行,其中第 iii 个蛋糕的饱腹度为 wo 其可口值为 di。由于手法过于生疏,尽管每个蛋糕的饱腹度必然为正数,但是可能存在蛋糕的可口值为负数!作为可口蛋糕大赛的评委,小灰灰需要吃掉一段连续的蛋糕,使得蛋糕的饱腹度之和至少为 W。而小蓝的得分就是小灰灰吃掉蛋糕所对应的可口值之和,她想知道在小灰灰帮助她的情况下,她的最大可能得分是多少。
2024-01-29 11:28:15 302
原创 洛谷1029与GCD和LCM
那么我们可以从x到y去枚举满p,那么q就会等于x*y/p,找到这样两个q,p后在判断其是否满足条件。例如 3 和 4的最大公约数是1 最小公倍数是12 ,那么1 *12 = 3 *4。lcm就会简单很多,因为x和y的最大公约数和最小公倍数相乘是=x*y的。当y=0时 gcd(x , y) = gcd(x , 0) = x。通过 x % y 的操作,这个函数将会返回x和y的最大公约数。要求P,Q 以 x, 为最大公约数,以 y 为最小公倍数。试求:满足条件的所有可能的 P,Q 的个数。
2024-01-28 17:44:27 227
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人