首页 > 其他分享 >推箱子保证单调性的正确性

推箱子保证单调性的正确性

时间:2023-11-22 16:23:39浏览次数:30  
标签:状态 这个 箱子 正确性 出队 移动 步数 单调

如果保证了单调性,那么一个状态在出队的时候,一定是这个状态的最优情况

反证,如果不是最优情况,那么肯定存在一个状态A,A能到达这个状态且会让这个状态变优

由于这个状态变优了,要么就是箱子移动的步数少了,要么就是箱子移动的步数是一样的但人移动的步数少了

然后这个更优的状态是由A移动过来的,所以A状态中箱子移动的步数和人移动的步数一定小于等于这个状态

就是说BFS中,A一定比这个状态更先前搜索到,也更先出队

然后A就会拓展到这个状态的更优情况,这个更优情况就会入队,就不可能让这个状态在此刻出队了

标签:状态,这个,箱子,正确性,出队,移动,步数,单调
From: https://www.cnblogs.com/dingxingdi/p/17849612.html

相关文章

  • 【题目-理想的正方形】 二维单调队列
    理想的正方形(二维单调队列)题目acwing.1091理想的正方形题解题目很好做,主要学习一下二维单调队列的写法首先将每行各窗口内最值用单调队列维护出来,保存在rmax中接着对rmax各列,将每列最值用单调队列维护出来,保存在cmax中,最后cmax中存的就是行和列窗口乘积范围的二维区间......
  • 单调队列优化多重背包
    多重背包题目已经很熟了我们要把它优化到O(nm)也就是对于每一个物品,我们只能够对dp数组进行一次遍历,并且不能枚举取几个物品或者说是,要在每一个状态下O(1)的找到取不同数量物品的最优解,并转移我们可以发现,其实转移的区间是非常有规律的,f[j]只能够从f[j-v[i]],f[j-2*v[i]]....f[j-c[i]*v......
  • 单调栈模型
    单调栈本质:及时去掉无用数据,保证栈中数据有序。 模板题: classSolution:defdailyTemperatures(self,temperatures:List[int])->List[int]:n=len(temperatures)stk=[]ans=[0]*nforiinrange(n-1,-1,-1):......
  • 代码随想训练营第三十七天(Python)| 738.单调递增的数字、968.监控二叉树
    738.单调递增的数字classSolution:defmonotoneIncreasingDigits(self,n:int)->int:#主要思路当前数字比前面数字小时。前面数字-1,当前数字变2为9str_n=str(n)foriinrange(len(str_n)-1,0,-1):ifstr_n[i]<str_n[......
  • 单调栈
    单调栈定义单调栈即满足单调性的栈结构。与单调队列相比,其只在一端进行进出。使用方法:就是从栈顶读出来一个元素,该元素满足单调性的某一端。例如取出栈中的最小值。原理将一个元素插入单调栈时,为了维护栈的单调性,需要在保证将该元素插入到栈顶后整个栈满足单调性的前提下弹出......
  • 区间树上查找所有与给定区间相交的区间-算法复杂度正确性证明
    区间树是在平衡树上维护的数据结构,按照左端点大小排序。详见《算法导论》。算法设计思路红黑树的拓展在红黑树上维护结点属性\(min,max\):\(min\)表示该结点及其所有后代结点中的区间低端的最小值。\(max\)表示该结点及其所有后代结点中的区间高端的最大值。在插入时,对结点......
  • 单调队列
    acwing154滑动窗口,单调队列q存的是下标,真正的值需要再套一个a数组1#include<iostream>2usingnamespacestd;34constintN=1e6+10;56intn,k;7inta[N],q[N];//q代表单调队列89intmain()10{11scanf("%d%d",&n,&k);12for(in......
  • 决策单调性
    定义顾名思义,就是说在DP取最值的过程中选的转移点\(j\)是单调的。只要有这个性质,就可以优化枚举转移的复杂度。充要条件\[f_i=\text{最值}(g_j+w(j+1,i))\]\(w\)满足四边形不等式。这里以取\(\min\)为例。假设有决策点\(j_1<j_2\),\(w\)满足四边形不等式等价于\(\De......
  • 08-单调栈
    8.单调栈有个数组arr,找到arr[i]左面比他小的第一个数,和右面比他小的第一个数,要求O(N)的时间复杂度.思路:栈底下栈顶从小到大,栈中存放位置信息,入栈或者出栈的时候可能需要记录信息。8.1每日温度https://leetcode.cn/problems/daily-temperatures/1.题目给定一个整数数......
  • 单调栈学习笔记
    今天模拟赛B没想出来,甚至没到单调栈那一步。到了可能也不会做。发现单调栈已经忘干净了,之前学过的悬线法也不太会,这里补一下单调栈。板子:HISTOGRA-LargestRectangleinaHistogram在我的这篇博客里有题解。总之我自己是看懂了的。单调栈求最大全1子矩阵问题P4147玉......