试炼场
Cyan_rose
是不去顾世间纷繁黑白,是将初心二字笑着招来
展开
-
【试炼场】矩阵取数游戏 【区间DP】
传送门 题目大意 给出一个N行M列的矩阵,矩阵中每个格子上有一个非负整数,要求取数M次,每次取数取走每一行的第一个数或者最后一个数,若值为a的数在第K次取数中被取到,能够得到的分值是 2k ×\times×a。现在求M次取数之后能够得到的最大的分值。 分析 显而易见的是,每一行都有一个最佳的取数方案,且这些方案之间互不影响(也就是说,你对第K行的取数方案再怎么变化,对于任意的另一行的方案都没有影响...原创 2018-10-13 00:16:11 · 541 阅读 · 0 评论 -
【试炼场】棋盘制作 【矩阵DP】【悬线法】
传送门 题目大意 给出一个N*M的矩阵,格子有黑白两种颜色,现在要找到黑白相间的、面积最大的矩形和正方形,输出它们的面积。 N,M <= 2000。 题解 对于在某个矩阵中求出满足要求的子矩阵,我们有一种常用方法——悬线法。 (其实我不知道为什么起这个名字 ) 这种方法的主要思路是逐个处理,按列继承。对本题而言,我们的思路如下: ①逐个处理:用单调栈的方式,求出每一个点在满足要求的前提下,向...原创 2019-03-01 21:48:45 · 296 阅读 · 0 评论 -
【试炼场】松鼠的新家 【树上差分】
传送门 题目描述 松鼠的新家是一棵树,前几天刚刚装修了新家,新家有n个房间,并且有n-1根树枝连接,每个房间都可以相互到达,且俩个房间之间的路线都是唯一的。天哪,他居然真的住在”树“上。 松鼠想邀请小熊维尼前来参观,并且还指定一份参观指南,他希望维尼能够按照他的指南顺序,先去a1,再去a2,…,最后到an,去参观新家。可是这样会导致维尼重复走很多房间,懒惰的维尼不停地推辞。可是松鼠告诉他,每走到一...原创 2018-10-25 23:58:09 · 641 阅读 · 0 评论 -
【试炼场】理想的正方形【单调队列】【矩阵DP】
传送门 题目大意 给出一个A×\times×B的矩阵,每个格子有一个值,要在其中找出一个N×\times×N的正方形,使得这个正方形中最大值与最小值的差最小。 A,B<=1000 题解 难得一次性想到正解 因为没什么好的想法,我们直接考虑怎么统计每一个符合条件的正方形里的最大值与最小值。 那么如果暴力统计显然有问题,我们就想啊:能不能先统一每一行的前缀最小值,再从列 ...原创 2019-03-07 09:26:56 · 311 阅读 · 0 评论 -
【试炼场】软件包管理器 【树链剖分】
传送门 题目大意 一颗树,N个点,初始标记均为0,两个操作: ①查询某个点到根的路径上0的个数,并全部变为1 ②查询某个点子树里1的个数,并全部变成0 题解 emm我不知道说什么。 ①=链查询+链覆盖,②=子树查询+子树覆盖 直接上代码吧。只是为了发篇博客2333 (我觉得等我写了树链剖分的详解之后该把这个删了。。这种模板没什么好解析的) #include<bits/stdc++.h>...原创 2019-03-13 17:27:46 · 150 阅读 · 0 评论 -
【试炼场】数字计数【数位DP】
传送门 题面描述 给定两个正整数a和b,求在[a,b]中的所有整数中,0~9每个数字各出现了多少次。 题解 首先这肯定是个数位DP,所以我们先写个记搜然后慢慢考虑怎么优化 然后你发现0~9分开统计你也只用算18次,然后就非常愉快的分开算 所以我们现在只需要求某个数字在[a,b]出现了多少次 那这就是很简单的问题了(并不,我才做了两道数位DP 我们记一个sum,表示这一位之前的数有几个是我们要找的数...原创 2019-03-29 21:57:28 · 176 阅读 · 0 评论 -
【日常练习】 消耗战【虚树】
传送门 前言 分块没有咕只是今天我懒得更 毕竟上周没上课不是 在学淀粉质的时候看到了动态淀粉质,然后发现需要学虚树,然后发现自己没写过虚树。 然后就有了这道题。 题目大意 一棵树,n个点,每条边有边权。k次询问,每次询问给出一些点,求让这些点都与根节点不连通所需要断开的边的价值之和的最小值。 题解 1、一次询问 那么首先可以看出这肯定是个树形DP。如果我们只有一次询问,这题就很简单了。 dp[...原创 2019-05-04 16:41:47 · 225 阅读 · 0 评论