
LuoGu
ACgay_caoyue
菜鸡*CPCer
展开
-
【洛谷P1886 滑动窗口 /【模板】单调队列】单调队列
题目链接之前好像学会过单调队列,但是我搜了一下,我的博客里面没有讲单调队列的。今天突然发现我不会单调队列了,于是又重新学了一遍,现在好像又有一点学会了。单调队列其实主要就是维护具有单调性的子序列。拿这个题的样例模拟一下单调队列的过程:q表示元素序列,p表示下标序列,序列从下标1开始。1 3 -1 -3 5 3 6 7round 1: q{1}, p{1}round 2: q{1,3},p{1,2}round 3: q{-1}, p{3}round 4: q{-3}, p{原创 2021-03-15 16:25:18 · 226 阅读 · 0 评论 -
【洛谷P3397 地毯】二维前缀和
题目链接本文再次讲解二维前缀和。首先我们来看一维前缀和。给定一个序列,在序列上进行区间加减,怎么做呢?我们需要引入差分数组。例如原序列为[0,0,0,0,0,0,0]在[1,3]上加1,则差分数组上就变成了[0,1,0,0,-1,0,0]然后对差分数组求前缀和,我们发现,其前缀和数组为[0,1,1,1,0,0,0]。其结果正是对原序列在[1,3]上加1于是我们可以得出一个结论,区间加减可以使用差分的思想,而差分数组的前缀和就是原数组。再来看二维前缀和。二维..原创 2021-03-15 10:45:17 · 663 阅读 · 0 评论 -
【树上DFS的大问题!!!】
本文解决了三年以来的疑惑。三年多来,我写树上dfs的时候只敢写void dfs()。因为每次我写int dfs()准出错。原因是因为:int dfs()是需要返回值层层上传的,而void dfs()搜到了答案那就记录下来。首先来看代码「在树上求now到1的距离」(注意,这段代码是错误的树上dfs):int dfs3(int now,int stp){ vis[1][now] = 1; if(now==1) { return stp; }原创 2021-03-13 21:15:41 · 318 阅读 · 0 评论 -
【洛谷P4387 【深基15.习9】验证栈序列】模拟
题目链接题目是个简单题,但是就是有点问题。直接模拟就可以,因为给定出栈序列了。当栈顶元素等于出栈数组的头部,就pop。然后判断栈的情况即可。#include <cstdio>#include <cstdlib>#include <iostream>#include <algorithm>#include <stack>using namespace std;const int maxn = 1e5+7;int a[max原创 2021-03-13 09:35:50 · 269 阅读 · 0 评论 -
【洛谷P2249 【深基13.例1】查找】二分
题目链接是个好题目,和平时的二分不同的是,这个需要找到lower_bound()的结果。那么就二分到只有一个数的时候再判断,否则x<=a[mid]就搜左边,x>a[mid]就搜右边,就可以实现lower_bound()的效果。代码如下,仔细品味;#include <cstdio>#include <cstdlib>#include <cstring>#include <iostream>#include <algor原创 2021-03-12 20:46:20 · 411 阅读 · 0 评论 -
【洛谷P1157 组合的输出】DFS暴力
题目链接这个题目和全排列有一些不一样:该题需要先从1~n中选择m个数字,然后再对m个数字升序排列。前半句,从n个数字选m个,普通的全排列可以做到,对m个数字升序排列,那么就在每一次选择数字的时候从上次最后一个出发就可以。主要也是我审题不清晰。#include <cstdio>#include <cstdlib>#include <iostream>#include <algorithm>#include <cstring>原创 2021-03-10 15:33:03 · 256 阅读 · 0 评论 -
【洛谷】统计方格
题目链接我晕,1997年普及组第一题,直接给我整蒙了。是一个小学奥数题。数据范围5000*5000,直接枚举每一个右下角(i,j),观察该右下角(i,j)与左上角(1,1)组成的图形:对于正方形,包含该右下角的正方形个数为min(i,j),对于矩阵,包含该右下角的矩形个数为i*j (往左有j种,往上有i种,共i*j种)。长方形的个数就是矩阵个数-正方形个数。很好的题,想明白了很通透。可以优化。没优化。#include <cstdio>#include <cstd原创 2021-03-10 10:05:03 · 372 阅读 · 0 评论 -
【洛谷】求第k大的数
题目链接就不放了,就是给定一个序列,求第k大的数字。经过大脑的检索,我们发现,在【快速排序】中,每一轮就将选出一个数字放在它原本应该在的位置上。那么,本题的思路就是,我们只要选出一个数,让它回到第k个位置上,就可以了。至于具体的序列的顺序关系,我们不需要关心,我们需要关心的只是某个数在序列中有多少个比他小,有多少个比他大。于是就写出了以下代码:但是代码的细节还是有的,需要仔细思考一下才可以。#include <cstdio>#include <cstdlib>#原创 2021-03-07 12:35:40 · 448 阅读 · 0 评论 -
【洛谷 作业调度】模拟
题目链接题目太长了,读了半天才读懂是什么意思。总之就是大模拟,没有任何技巧而言。但是写代码的时候还是有不少技巧的。仔细品味吧。主要是这个很难解释。#include <cstdio>#include <cstdlib>#include <cstring>#include <algorithm>using namespace std;const int maxn = 30;struct node{ int id;原创 2021-03-06 10:32:40 · 179 阅读 · 0 评论 -
【洛谷模拟题】农夫和牛
题目链接平常的一个人移动,可以写dfs(x,y,stp),但是这个是两个独立的人,移动方向是独立的,而且每一分钟都要两个人一起移动,所以不能这样写,要把两个人的坐标写在外面。仔细体会。#include <cstdio>#include <cstdlib>#include <iostream>#include <algorithm>#include <cstring>using namespace std;const int m原创 2021-03-05 19:21:44 · 343 阅读 · 0 评论 -
【洛谷】矩阵旋转
题目链接掌握好矩阵旋转的方法很重要。经过观察可以发现,矩阵的第i行和矩阵的第i列,在旋转前后是有关系的。于是我们就可以把矩阵的列,按顺序填到矩阵的行上。#include <cstdio>#include <cstdlib>#include <algorithm>#include <iostream>#include <cstring>#include <string>using namespace std;原创 2021-03-03 09:18:33 · 346 阅读 · 0 评论 -
【洛谷】大数阶乘
题目链接就不放了。之前在打比赛的时候,一直大数都是抄的板子。自己写了一下发现还可以吧。最主要的就是要注意数组的大小问题。因为加法和乘法的结果的长度是不一样的。#include <cstdio>#include <cstdlib>#include <iostream>#include <algorithm>#include <cstring>#include <vector>using namespace std;原创 2021-03-02 20:06:19 · 181 阅读 · 0 评论 -
二分+二维前缀和+主席树【洛谷P2468】
传送门自己偷偷跑啦!这个题很奇怪,是一个二合一的题目。一半的数据是二维矩阵一半数据是一维的序列二维矩阵的数据范围只有200,我们考虑dp+二分答案:value[i][j][k]表示从以(1,1)到(i,j)为对角线的矩阵中大于等于k的所有数字的权值和。num[i][j][k]表示从以(1,1)到(i,j)为对角线的矩阵中大于等于k的数字的数目。我们先预处理value和num,可是,怎...原创 2018-12-20 19:37:01 · 312 阅读 · 0 评论 -
预处理+DFS【洛谷P1019】
照例先上题目链接:https://www.luogu.org/problemnew/show/P1019一拿到题是懵的,读了好几遍题目才确定题意,想了半天都在想怎么样才能模拟把字符串输出出来。果然对于这种含有模拟的题目我还是很不拿手。由于对这个题目毫无思路,在队友@TDD的启(讲)发(解)下,我才勉强对这个题目有了新的认识。这题根本就不需要把字符输出出来啊!下面是思路:首先题目...原创 2018-10-17 19:16:55 · 230 阅读 · 0 评论 -
贪心+高精度【洛谷P1080】
此篇文章的代码来自@Chlience,未经允许私自借用,十分不好意思。题目链接:https://www.luogu.org/problemnew/show/P1080 拿到这个题目,我根本没有注意到数据范围竟然会超long long,真的是第一次做这种贪心题竟然需要写高精度。(做的题太少了,所以没见过,所以蒻)首先推导一下贪心的策略:(借鉴自@Chlience)简化一下问题,假...转载 2018-10-17 14:42:46 · 404 阅读 · 1 评论 -
二分查找【洛谷P1094】
题目链接在这:https://www.luogu.org/problemnew/show/P1094 题目很简单,算法也很简单,我相信没有人不会做这个题的,但是我为什么要写这篇题解呢,因为我被一个东西坑了将近一个小时(我太蒻了!)。 看了好多题解都是用两个指针一个开头一个结尾然后移动,但是我确实一开始就不是这样想的啊!(我蒻!)先说思路:sort是肯定要sort的,然后直接fo...原创 2018-10-17 12:28:18 · 573 阅读 · 0 评论 -
归并排序【洛谷P1309】
先上题目:https://www.luogu.org/problemnew/show/P1309拿到这个题目,我不屑一顾,暴力搞搞就完事了,直到看到数据范围,我才对着电脑思考了好久...暴力搞一波的复杂度大概是O(r*n*logn)的,怀着侥幸的心理,果然T了四组数据。下面是题解,表达能力有限,大概只有我自己能看懂(大概只有我自己才会看这篇博客吧)1.首先按每个人的s和编号,sor...原创 2018-10-16 14:32:35 · 490 阅读 · 0 评论