牛客
R_emembers
这个作者很懒,什么都没留下…
展开
-
brz的杯子 - 牛客练习赛72
brz的杯子题目题解y|x 是能够整除的意思推断序列位置:1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17数字:1,2,2,3,2,3,2,4,3, 3, 2, 4, 2, 3, 3, 5, 2发现每到下标为2的幂的位置,所需要的最大数都会加1,这个数字等价于下标二进制的位数。所以对于n个瓶子,只有当m>=n的二进制位数时才会存在可行的方案。代码#include <iostream>#include <cstdio>#原创 2020-11-08 12:00:08 · 117 阅读 · 0 评论 -
牛客每日一题 7月3日 毒瘤xor (前缀和+贪心)
毒瘤xor题目毒瘤xor异或异或(^)运算规则:0 ^ 0 = 0 ,0 ^ 1 = 1, 1 ^ 0 = 1, 1 ^ 1 = 1.题解本题如果原来的数这一位是1,它异或一个0;如果原来是0,异或1。我们用一个前缀数组记录每一位的1的数量,如果1更多,我们就让他异或一个0, 如果0更多, 就异或一个1。前缀和的处理是需要(n*30)。代码#include <iostream>#include <cstdio>#define ll long longus转载 2020-09-16 21:41:14 · 144 阅读 · 0 评论 -
牛客每日一题 7月15日-生日快乐(DFS)
生日快乐题目生日快乐题解大概意思给你一个nm的矩形,切成n等分,并且长宽比的最大值最小。dfs的方向就是我们枚举每一刀的位置即可,对于当前矩形假如要把它切成k块,下一刀的取法只有2(k-1)种方案,取最小的一种即可。代码#include <iostream>#include <cstdio>#include <cmath>using namespace std;double dfs(double x, double y, int n) {转载 2020-09-16 21:25:16 · 131 阅读 · 0 评论 -
牛客每日一题 5月18日「土」秘法地震 (二维前缀和)
「土」秘法地震题目题目连接 「土」秘法地震二维前缀和f[i][j]为前i行前j列的格子里面数字的和,f[i][j] = f[i-1][j] + f[i][j-1] - f[i-1][j-1]f[i][j]=f[i−1][j]+f[i][j−1]−f[i−1][j−1]如图一:如果我们需要求一个左上角为(a,b)右下角为(c, d)的子矩形的和,显然它等于f[c][d] - f[a][b-1]-f[a-1][b]+f[i][j]f[c][d]−f[a][b−1]−f[a−1][b]+f[i][转载 2020-09-08 21:19:06 · 105 阅读 · 0 评论 -
牛客每日一题 3月20日 滑动窗口(优先队列)
滑动窗口(优先队列)题目链接:滑动窗口题解:我们用一个双端队列来维护(普通的队列只能从队尾加入元素从队首删除元素,双端队列的队尾也可也删除元素),区间每次右移一个单位,首先看看队首的元素是否超出了范围,如果超出了,就把它删掉;然后将新进入区间的这个元素往双端队列里放,但放进来之前需要判断队尾(也就是还有可能成为最大值的最后一个元素)是不是小于最后一个元素,如果是,就把这个队尾删掉,一直到前一个元素大于等于它为止。由于我们队列里面的元素实际上是单调不增的,每次的最大实际上就在队首。而由于每个数进队和出转载 2020-08-07 14:05:21 · 149 阅读 · 0 评论 -
牛客每日一题 3.25 tokitsukaze and Soldier (贪心+优先队列)
题目题解枚举选择多少个物品,显然所有不低于此限制的物品均能选择,则使用一个优先队列储存当前选择的物品,先加入符合限制的,然后在删除容量的最小的部分即可。代码#include <iostream>#include <queue>#include <algorithm>#define LL long longusing namespace std;const int MAXN = 100020;priority_queue<LL, vector&l原创 2020-07-29 14:54:24 · 153 阅读 · 0 评论