自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 补丁数组证明

前言 补丁数组的证明比最多能完成排序的块要好讲多了(/ω\) 实现 上代码 #include <cstdio> #include <algorithm> using namespace std; const int MAXN = 1e5 + 5; int l, n; int a[MAXN]; int main() { scanf("%d %d", &l, &n); for(int i = 1; i <= l; i++) scanf("%d", &amp

2020-06-30 22:46:21 182 1

原创 最多能完成排序的块证明

题目 今天中午我表达自己的想法时, 好像 没讲清楚,现在补充一下吧 实现 先重新叙述一遍郭老师的方法(拿样例举例) 样例 5 2 1 3 4 4 1.将数组排序 1 2 3 4 4 2.标记出每个数排好序后的下标 原值2 1 3 4 4 下标2 1 3 4 4 3.i从1~n枚举,_max = max(a[j])(1 <= j <= i),当_max == i时,就可以多划分一个块 证明 记排好序后的数组为b 记a[i]对应的b数组中的数为b[j](即a[i] == b[j]) 则为了让

2020-06-30 22:22:01 147

原创 多边形题解

题目 法1(直接按照题意实现) 分析 这种方法不是很难…吧。用一个循环枚举从第i个点切开,然后就是一个石子合并 搭配我的bolg食用更佳 注意 这道题由于有乘号,而负数 * 负数 = 整数,所以要保存一个最小值,还要保存一个最大值 代码高亮 可能是我写麻烦了,代码非常长 #include <queue> #include <cstdio> using namespace std; const int MAXN = 55; const int INF = 0x3f3f3f3f; i

2020-06-22 21:54:01 275

原创 石子合并+区间dp初感悟

感悟 感觉区间dp和线性dp差别不大,区间dp和线性dp的差别应该是在求求解的顺序有所改变,以石子合并为例 题目描述 设有N堆石子排成一排,其编号为1,2,3,…,N。 每堆石子有一定的质量,可以用一个整数来描述,现在要将这N堆石子合并成为一堆。 每次只能合并相邻的两堆,合并的代价为这两堆石子的质量之和,合并后与 这两堆石子相邻的石子将和新堆相邻,合并时由于选择的顺序不同,合并的 总代价也不相同。 例如有4堆石子分别为 1 3 5 2, 我们可以先合并1、2堆,代价为4,得到4 5 2, 又合

2020-06-22 13:00:04 171

原创 绝(zhen)世(xiang)好题题解

我好菜啊 前言 我是真的菜(╥╯^╰╥),挠了半天的头,还是只想到了O(n * n)的算法 不过骗了80分, 头 挠得 疼的实在受不了,搜了一下题解,看了之后看懂了,可觉得讲的不是很详细,秉承着不浪费每一道题的 素质 精神,我决定写篇blog,希望这样也能让我记忆深刻。 ps:黎老师连题目名都不改的吗,我搜索能力这么差都搜到了 分析 我们定义f[i][j]为:在前i个数中选择,以在二进制表示下,第j位为1的最长的序列。 那么我们分析一下f[i][j]会由哪些状态转移过来。 1.第i个数在二进制表示下的第j位

2020-06-16 22:58:58 187

原创 种树的艺术——状态转移方程

题目 f[i][j][k]表示树的棵数为i,从左边看过去有j课,从右边看过去有k棵的方案总数 从最矮的开始分析 1.放在最左边 共有f[i - 1][j - 1][k]种方案 2.放在最右边 共有f[i - 1][j][k - 1]种方案 3.放在中间 共有f[i - 1][j][k] * (i - 2)中方案 状态转移方程:f[i][j][k] = f[i - 1][j - 1][k] + f[i - 1][j][k - 1] + f[i - 1][j][k] * (i - 2) ...

2020-06-11 14:07:22 201

原创 扑克牌证明

题目 能想到的奆佬真是太可怕了,我知道做法后去推原理都花费了好久。 证明过程 欲证:若∑a[i] <= n, 则这些牌都能取到 因为∑a[i] <= n, 则必有两张牌i,j(i < j),满足i - j < a[i](抽屉原理易证) 则需欲证∑a[i] - a[z] (剔除的那张牌) <= n - a[z](要“扔”掉a[z]张牌) 则这些牌都能取到。 … 当剔除到仅剩一张牌时,是成立的(a[k] <= n - ∑a[i] + a[k]),倒推回去,即证 ...

2020-06-03 22:19:57 826

空空如也

空空如也

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

TA关注的人

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