![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
牛客
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 long us转载 2020-09-16 21:41:14 · 145 阅读 · 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 · 132 阅读 · 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 · 152 阅读 · 0 评论 -
牛客每日一题 3.25 tokitsukaze and Soldier (贪心+优先队列)
题目 题解 枚举选择多少个物品,显然所有不低于此限制的物品均能选择,则使用一个优先队列储存当前选择的物品,先加入符合限制的,然后在删除容量的最小的部分即可。 代码 #include <iostream> #include <queue> #include <algorithm> #define LL long long using namespace std; const int MAXN = 100020; priority_queue<LL, vector&l原创 2020-07-29 14:54:24 · 153 阅读 · 0 评论