摘要:
"题面" 读完题,我们会发现有一个很重要的信息,每件物品代价相同,但价值不同。那么我们很容易想到,在满足限制的情况下,我们肯定会选择价值尽可能大的物品。 我们可否用背包来实现呢,答案是否定的,或者说我不会QwQ 那么,我们来看看贪心 由于物品的代价相同,那么当物品之间冲突时,我们留下价值大者,必定最 阅读全文
摘要:
在动态规划的题型中,一般叫什么DP就是怎么DP,状压DP也不例外 所谓状态压缩,一般是通过用01串表示状态,充分利用二进制数的特性,简化计算难度。举个例子,在棋盘上摆放棋子的题目中,我们可以用1表示当前位置摆放棋子,用0表示当前位置不摆放棋子。 这样的话,就能够直接运用许多二进制运算的特性来实现对时 阅读全文
摘要:
" 题面 " 题目要求将k个点染成黑色,求黑点两两距离及白点两两距离,使他们之和最大。 我们可以将距离转化为路径,然后再将路径路径拆分成边,就可以记录每条边被经过的次数,直接计算即可。 很简单对吧?那么问题来了,距离转化为路径好理解,路径拆为边也好说,可是每条边被经过的次数怎么计算呢? 我们可以这样 阅读全文
摘要:
话说我的markdown矩阵竟然炸了,只好换图片了,真是不爽 嗯,这玩意看着很难对吧,之前我还是这样想的。。直到看到了 " 斐波那契公约数 " 这道题 这道题一看我这种辣鸡就不会做啊,然后rqy告诉我这是傻逼题啊,我忽然就想起了以前听说过的矩阵乘。。然后懒惰的DDOSvoid大佬告诉我要做这道题,得 阅读全文
摘要:
树形DP。这是个什么东西?为什么叫这个名字?跟其他DP有什么区别? 相信很多初学者在刚刚接触一种新思想的时候都会有这种问题。 没错,树形DP准确的说是一种DP的思想,将DP建立在树状结构的基础上。 既然说了这是一种思想,那么单讲的话,也讲不出什么东西来。所以我们结合具体题目进行讲解,希望大家可以在题 阅读全文
摘要:
以前一直以为这两个是很高级的东西,这段时间用到了才开始学,发现实际上非常简单 下面我们以单调队列为例进行讲解,单调栈自行类比 顾名思义 单调队列这个名字就指明了它的性质—— 单调性 我们来看一道例题—— "滑动窗口" 题面在此不再赘述,大意就是有一个长度为$n$的数列,一个长度为$k$的窗口,输出窗 阅读全文
摘要:
以前没有接触过树链剖分的同学们看到这个东西是不是觉得很高大上呢,下面我将带你们进入树的世界( 讲得不好别打我 ) 首先我们来看一道题 " 软件包管理器 " 这道题的大意是,每个软件有一个父软件(除根节点外)。要安装一个软件必须先安装它的父软件,要卸载一个软件必须先卸载它的所有子软件,模拟对软件的安装 阅读全文
摘要:
"我是题面" 读完题后,我们会发现这道题的题意非常简单,大意就是有n件物品,m个区间,求每个区间检验值之和,通过改变参数使标准值与检验值的差的绝对值最小 很明显,检验值的变动只与参数有关,我们可以二分参数来搜索答案 由题意可知,参数至小为0,至大为所有物品中最大的重量,再大则与至大值意义相同 那么每 阅读全文
摘要:
Qtree系列第三题 "我是题面" 读完题大概不难判断是一道树剖的题 这道题的关键是记录两种状态,以及黑点的序号(不是编号) 线段树啊当然 定义两个变量v,f,v表示距离根节点最近的黑点,默认 1,f则表示区间内是否含有黑点,有为1,无为0 那么,怎么才能取当前路径距离根节点最近的黑点的呢?线段树更 阅读全文
摘要:
Qtree系列都跟树有着莫大的联系,这道题当然也不例外 "我是题面" 读完题,我们大概就知道了,这道题非常简单,可以说是模板题。树剖+线段树轻松解决 直接看代码吧 cpp include include include include include define ll long long defi 阅读全文