自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 关于单调性

单调性的应用在做题过程中,利用题目的单调性或运用单调性会很好的帮助我们解题经典的运用单调性的,有单调队列,单调栈。其他的在题目中的单调性,我们经常会运用到,平移,滑动等思想。 我们先来复习单调栈和单调队列,体会单调性的有趣。单调栈首先我们知道栈,是一种先进先出的线性数据结构。那我们先来了解一下单调栈的简单应用POJ-2559(vjudge)我们有多个矩阵,求被这些矩阵覆盖的最大矩阵面积图片暂无做法肯定是单调栈,那我们考虑如何找到与单调性有关的东西。先来想,假设矩阵是单调递增的,如

2021-09-27 16:03:55 378

原创 Sunscreen 奶牛

这是一道经典的贪心题先看如何想到贪心 (这不明显吗,呃呃呃) 我们将牛的最大值与最小值抽象为线段,那这到题就变为线段的区间覆盖问题。我们直接想如何可以使贪心最优,我们将线段的右端点排序,之后我们再选用一个值最大并且符合条件的防晒霜。这样做为什么正确,我们可以感性理解。每一头牛的贡献都为一,所以我们可以尽可能的用防晒霜,我们已经将每头牛按右端点排序,所以每次找可以用的防晒霜中最大的,可以使之后的选择更优/************************************************

2021-09-20 10:39:19 170

原创 蓝书(算法竞赛进阶指南)学习笔记

算法竞赛进阶指南——笔记0X00- 0x01位运算知识:位移(左移右移)快速幂 快速乘等等二进制压缩 (隐隐约约指向 状压DP )基操取数位运算特点 二进制下不进位利用这特点可以我们可以做题小技巧(应用邻接表 我不用)n为偶数时 n ^ 1 = n + 1;n为基数时 n ^ 1 = n - 1;lowbit 运算 最低位的1与之后的0 广泛应用于各地例题CH0101/Acwing(vjudge) 求a^b的次方mod p数据范围为1e9/1e18 我们已知所有

2021-09-16 07:37:21 1903 1

原创 genius ACM

genius ACM蒟蒻认为这道题好难。看了题解也并不能完全理解。主要难度在对倍增的理解上~~(其实归并排序也并不懂)~~题面描述给定一个整数 M,对于任意一个整数集合 S,定义“校验值”如下:从集合 S 中取出 M 对数(即 2×M 个数,不能重复使用集合中的数,如果 S 中的整数不够 M 对,则取到不能取为止),使得“每对数的差的平方”之和最大,这个最大值就称为集合 S 的“校验值”。现在给定一个长度为 N 的数列 A 以及一个整数 T。我们要把 A 分成若干段,使得每一段的“校验值”都不超过

2021-09-16 07:06:01 258

原创 luogu P1108 低价购买(方案数)

DP学习DP关于方案数luogu p1108这是一个简单的DP,与方案数有一点关系我们先看第一问,最大购买次数为最长下降序列长度。然后我们要去处理方案数d[i] 表示以 i 结尾时的方案数我们考虑什么时候会有重复当序列的最后一位相等并且序列长度相等,我们要删除重复的方案数/*********************************************************** > File Name: LGP1108.cpp > Author: lan_m &

2021-09-13 11:14:49 122

原创 2021-09-13 LGP1450

DP学习luogu p1450嗷~~,DP题,我们有 4 种硬币,每种硬币有不同价值看到这里,我们容易联想到背包,但题目中又有多组数据,数量限制所以不能只跑背包我们要限制硬币的数量,所以可以想到 类似差分前缀和的做法,1 ~ 3 的数量可以表示为1 ~ oo - 4 ~ oo我们可以处理出最大的数量,通过处理加上限制但同时我们要考虑我们减后的影响这时就用到了 容斥原理 我们要减去多的,也要加上少的我还不会容斥原理之后会补一点容斥/********************************

2021-09-13 07:54:40 40

原创 2021-09-12 DP LGP1220

DP学习看题面,我们可以考虑如何暴力DP我们可以将1~ n 的关灯顺序缩小到一个区间并且满足无后效性我们每次决策都要考虑向左或向右所以需要一个状态记录在区间的左或右我们可以得到f[i][j][1/0] 表示在 i 到 j 区间内在左 右端点时消耗电/*********************************************************** > File Name: LGP1220.cpp > Author: lan_m > QQ: 2867930

2021-09-12 11:50:32 65

原创 2021-09-10 P1270 “访问”美术馆 P3360 偷天换日

DP 学习第一道题 luoguP1270直接看题可以看出这是一道关于树的题我们因为在学DP所以这是一道树形DP 根据题目要在给定时间内求出最大可得价值(偷最多的画)我们考虑是否可以分出子问题,子问题如何求解,子问题如何转移也就是要尝试用DP求解用 f[i][j] 去表示在i点下用j时间可获得的最大价值我们考虑转移对于叶子节点 我们取最小的可拿的画与已有的画对于非叶子节点 我们要分配给左右儿子时间取最大值这题的读入较麻烦,我们写一个dfs()去读入顺便建成一棵树然后遍历转移最后的答案为f[1][

2021-09-10 11:47:39 75

原创 cf #740 Div.2

cf #740 Div.2A. The Miracle and the Sleeper对于

2021-09-10 07:12:30 73

原创 luoguP4141 消失之物

LGP4141LGP4141我们首先可以看出这题与背包有关我们先想一个暴力的解法做n次背包,每次得到一个不选 一个物品 W[i] 的方案这样做肯定会T,所以我们想想如何更好的得到答案我们可以先跑一次背包,就得到了 f[i] 表示容量为 i 下的方案数我们需要减去包含 W[i] 的方案数所以用 g[i],表示容量为i 下不选W[i] 的方案数/*********************************************************** > File Name: LGP

2021-09-09 22:17:09 288

原创 LGP1280

LGP 1280luogu 1280题面略对于这道题我们首先可以想到 f[i] 表示在i时间下的最大休息时间但我并不能想到一个合理的转移方程所以在机房大佬的帮助下我们可以发现在正序下很难转移所以我们就可以倒序做 lan_m第一次做倒叙DP (除了背包)f[i] = f[i+1] + 1;f[i] = max( f[i - v[i][j]] );/*********************************************************** > File Name:

2021-09-07 20:24:02 40

原创 杂题 LGP2296

LGP2296luoguP2296题面 略做法标记不满足 ①跑dijkstra#include<bits/stdc++.h>using namespace std;int n,m;const int N = 1e5+10;int tot,head[N],to[N<<1],nex[N<<1];void add(int x,int y){ to[++tot] = y; nex[tot] = head[x]; head[x] = tot;}

2021-09-03 08:55:32 58

原创 (网络流)LGP2691

luoguP2691n*n 的网格图中要从m个点中找互不相交的路径我们考虑如何建图首先将起点S连向m个点将图的边缘连向终点T为使每个点只经过一次将每个点拆分为两个点 让边权(流量)为一跑dinic#include<bits/stdc++.h>using namespace std;const int N = 10100;int n,m;int tot,head[N],to[N<<2],val[N<<2],nex[N<<2],op[N<<

2021-08-29 16:34:01 56

原创 有趣的兔子(题解)

LGP39382 的父亲为 13 -> 14 -> 1 5 -> 26 -> 1 7 -> 2 8 -> 39 -> 1 10-> 2 11-> 3 12-> 4 13->5由观察可以看出每一个点的父亲为该点减去小于本身的最大斐波那契数 然后就可以递归求解LGP3939对于该问题我们要维护2个信息 我们可以套用数据结构~~(然而我不会用)~~我们要进行两个操作 对于第一个操作我们可以可以记录每个颜色都在

2021-08-29 10:33:26 103

原创 题解 P1948 [USACO08JAN]Telephone Lines S

P1948 [USACO08JAN]Telephone Lines S题面大意:选择一些边使1到n连通,可以使k条边边权为0,求最少花费sol花费满足单调性,我们可以二分一个花费,将大于花费的边权标为 1 ,小于花费的边权标为 0,找一条1到n的最短路,如果花费小于等于k,那说明二分的花费可以为答案#include<bits/stdc++.h>using namespace std;const int N = 10010;int n,m,num;int tot,head[10

2021-08-27 03:39:52 350

原创 题单(自用)

题单数据结构SP2916 GSS5 - Can you answer these queries VSP1043 GSS1 - Can you answer these queries I数论DPP1262 间谍网络P3146 [USACO16OPEN]248 G

2021-08-02 12:50:21 112

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除