题目描述: 样例: 实现解释: 所有结点对最短路径的板子题 知识点: 寻找所有结点对最短路径,动态规划 坑点: 无坑,注意建边即可 使用的算法为floyd算法 按照程序顺序解释如下: 首先建图,以邻接矩阵形式,初始化矩阵内容:对i==j的设为权值0,其他的设为INF(正无穷的大小取决于题目),以便后续计算时能区分自身和不可达结点.然后依据输入按照edge[u][v] = w的形式连点即可. 运行floyd算法 动态规划思想展现:最优子结构,状态转移方程 以下图为例:(来源网络) 上图中1号到5号…
题目描述: 样例: 实现解释: 一道因为没排序做了一个小时没做出来的二分答案模板题(手动呲牙) 知识点: 二分答案,最大值最小化 坑点: 排序,judge(mid)函数内计数的实现 其实从最长一步的最小距离就能大致看出:二分答案 因此需要做的就是对0~L这个区间二分查找满足题意的跳跃距离,直到达到终止条件. 唯一需要注意的就是:何时满足条件,二分答案中最重要的judge函数,可以先缕一下:只能跳m步,需要从0跳到L. 有步数限制,因此跳跃仅在不得不跳时进行(减少步数消耗),所以需要一个pre记录…
题目描述 样例: 实现解释: 没想到你也是个刀客塔之二维DP 知识点: 动态规划,多条流水线调度?可以看做一种流水线调度 坑点: 输入内容的调整(*的特殊判定),开头结尾的调整策略 从题意可知,要做的就是从起始点移动到蓝点,并且在过程中会有一个值的记录,这就可以和一些基础题目联系起来:捡金币问题,流水线问题等等. 不过注意在使用板子时需要注意值的调度策略:对无法过去的地点,可将敌人攻击值设为99999,即无限,从而在进行动态规划时也可直接参与计算.借助这一攻击无限化的想法,对第一列和最后一列也需…
题目描述: 样例: 实现解释: 和字符串处理结合的动态规划,个人认为比较难分析出状态转移方程,虽然懂了之后挺好理解的 知识点: 动态规划,字符串转数字 题目分析: 首先按照最基础:依据题意设计原始dp数组,这里根据描可知有三个数需要考虑:数字串开始,数字串结尾和之间插入的乘号数量,因此基础dp[i][j][k],分别为开始,结束脚标和乘号数. 然后推导:考虑到添加乘号,为了使状态转移方程简单,最后固定位置,因此可以考虑每次都在最后插入乘号,插入乘号的位置便可倒序确定.此时数字串的开始位置便可固定…
题目描述: 样例: 实现解释: 需要简单分析的贪心题 知识点: 贪心,自定义排序,提前存储 题目分析: 卖鱼,鱼卖出去需要时间,鱼没被卖出去之前需要吃饲料 则有,如果卖a鱼的话b鱼会吃饲料c份,而卖b鱼a鱼会吃d份,为了消耗更少的饲料,如果c比d小,则应该卖a鱼.而计算上即c = a.t*b.d,d = a.d*b.t. 因此需要做的就是依据上述公式对所有鱼的买卖优先级进行排序(排序的cmp函数实现有进行简单解释),然后按顺序计算需要的饲料数即可. 为了不再遍历计算卖鱼时的花费,这里用total…
题目描述: 样例: 实现解释: 一道结合了火箭发射的贪心题目 知识点: 贪心,优先队列 题目分析: 根据题目描述可知,延迟后时间是正常推进的,也就是假设共有n个火箭,推迟k小时.则在到达k+1小时时,每过一个小时只要火箭没发射完都会有k(如果k大于n就是有剩余数量)个火箭会遭受延迟的损失,显然这是必然的(因为到达k小时前的损失都已经确定了,无法改变). 那么依据题意只要使得每次这k个火箭的损失最小即可,而如何最小:让其中单位时间损失最大的火箭发射即可,这样一定比发射其他火箭的损失要小. 于是便可…
1066 ModricWang的水系法术 思路 比较典型的最大流问题,需要注意的是,题目已经暗示(明示)了这里的边是双向的,在建图的时候需要加上反向边的容量值. 解决最大流问题的基本思路就是不断在残量网络上找增广路径,这里可以参考一下我院远古学长Song Renfei对于ISAP算法的讲解:ISAP 时间复杂度\(O(V^2 \sqrt E)\) 代码 #include <iostream> #include <cstring> using std::ios_base; using…
1039 AlvinZH的学霸养成记IV 思路 难题,最大二分图匹配. 难点在于如何转化问题,n对n,一个只能攻击一个,判断是否存在一种攻击方案我方不死团灭对方.可以想到把所有随从看作点,对于可攻击的两个随从间连上边,这样就把问题转化为图了. 需要注意的是属性值的转化:免疫可看做生命值无限,剧毒可看做攻击力无限.(需要一点小小的机智) 图建好了,接下来怎么办呢?假设存在一种方案满足题意,那就是每个我方随从都可以找到敌方随从攻击,由于要团灭,只能存在一对一的情况,不存在多对一或一对多.如何表达这个…
1064 Bamboo和"Coco" 分析题意 每个亡灵至少一个花瓣,相邻的亡灵中思念值高的要获得的花瓣高(思念值相等是不需要花瓣一样多的).主要考贪心思路,为了使得花瓣总量最少,每次比思念值更低的"邻近亡灵"的花瓣数多一就可以了 思路 都是先保证每个亡灵至少一个花瓣 思路一 直接模拟思路,同时关心左边和右边(或者说前边和后边),一次循环是不够的,比如3 2 1,修改了1号的花瓣数,再修改2号的花瓣数,此时会对一号产生影响.需要多次遍历,直到没有新的改变为止,算法为…
Bamboo&APTX4844魔发药水 题意 "于是,Bamboo耐着性子,看巫师从袖子里掏出 M 瓶时光泉水和 K 粒绿色能量.每瓶时光泉水重量为 c ,生发效果为 l:每粒绿色能量的重量为w ,生发效果为 r.但一瓶APTX4844的重量不能超过 S,否则很难过安检(难道不是难以下咽?)." "配置魔发药水需要用到至多两种原料:固态的绿色能量和液态的时光泉水.但是由于两者副作用不一样,*制作时优先选用副作用小的绿色能量,即先考虑使用绿色能量使得生发效果最大,然后再…