https://loj.ac/problem/2632 题目描述 给出n行m列的斜线,要求从(0,0)走到(n,m),只能往四个斜方向走,若斜线方向与走的方向相同,花费为0,否则花费为1. 思路 比较经典的bfs题,可以看做是0,1最短路,用双端队列解决。用双端队列是为了维护队列中的单调性,即队列中 ...
分类:
其他好文 时间:
2019-09-30 21:37:47
阅读次数:
75
最长不下降子序列实现: 利用序列的单调性。 对于任意一个单调序列,如 1 2 3 4 5(是单增的),若这时向序列尾部增添一个数 x,我们只会在意 x 和 5 的大小,若 x>5,增添成功,反之则失败。由于普通代码是从头开始比较,而 x 和 1,2,3,4 的大小比较是没有用处的,这种操作只会造成时 ...
分类:
其他好文 时间:
2019-09-29 19:37:50
阅读次数:
56
真题 证明函数不等式 一定要时刻明白自己在证什么!!! 证明函数不等式 常用的有以下五种方法: 利用 函数单调性 利用 拉格朗日中值定理 利用函数的最大最小值 利用泰勒公式 利用凹凸性(定义或性质) 利用单调性 利用拉格朗日中值定理 利用函数的最大最小值 利用泰勒公式 利用凹凸性(定义或性质) 方程 ...
分类:
其他好文 时间:
2019-09-25 12:41:55
阅读次数:
126
说是贪心有点牵强。 首先有性质:对于交换操作,改变操作顺序结果不变。 其次,答案满足单调性,如果在k次操作能完成那么在k+1次操作内也能完成。 因为大不了你就把多的一次对方操作再进行一次就好了。 怎么操作呢? 我们从头扫这个序列,遇到每一个不匹配位置就把那个数字所在位置和当前位置互换一下就好了。 贪 ...
分类:
其他好文 时间:
2019-09-17 18:59:56
阅读次数:
80
CF888E Maximum Subsequence 有一种叫做折半搜索的好东西 我们把数列劈成两半,分别搜索,再合并 合并可以排序+二分或者排序+单调性 代码极短 ...
分类:
其他好文 时间:
2019-09-15 16:48:18
阅读次数:
85
题面 由于我们并不清楚要求的W的值,但是我们知道W的值不超过矿石中价值最大的,如果W大于了矿石中价值最大的,那么Y的值为0,无法达到最优解。 因此,很容易就能想到在确定W的值要用二分的方法。 在分析这道题的时候,我们很容易知道Y的值是满足单调性的,当W的值越大,Y的值越小,因为W越大,能够选的矿石就 ...
分类:
其他好文 时间:
2019-09-15 14:11:06
阅读次数:
86
"期末考试" sol 因为时间范围很小,所以可以利用单调性求出对于每一个时间$t$,当最晚的成绩公布时间为$t$时学生产生的不满意度总和$f_t$和让所有课程的公布时间不大于$t$的前提下课程产生的最小不满意度$g_t$.复杂度$O(nlogn)$,瓶颈是排序. 但是上面那个做法太不优雅了.我们可以 ...
分类:
其他好文 时间:
2019-09-14 13:44:52
阅读次数:
136
先了解一下单调队列: 很明显的具有单调性 分为单调递增和单调递减两种,简单点讲就是维护队头为最大值或者为最小值 (建议采用双向队列 比较好写) 具体步骤:(这个是单调递减) 如果队列非空且当前值比队尾元素大,不断删除比该值小的元素,否则直接队尾入队 单调队列的作用:: 1):可以用来维护区间的单调性 ...
分类:
其他好文 时间:
2019-09-07 13:24:21
阅读次数:
106
四边形不等式 函数w满足 1: 区间包含的单调性,对于$x1 dp[i][j]){ dp[i][j] = val; } } } } ans2 = dp[1][n]; for(int i=1;i 1]; // dis只增加了右端点到中间点的距离 } } for(int i=1;ii; j){ // 当 ...
分类:
其他好文 时间:
2019-09-02 23:57:38
阅读次数:
196
~~在发现此题前,我以为整体二分只能求第K大来着,我还是太菜了~~ 我们先不考虑多组询问,假设只有一组询问 不难发现,答案具有明显的单调性,所以我们考虑二分来做 对于我们二分的值$mid$,我们先假设$l mid$的雨全部下下来 如果当前的降雨量大于我们所需要的,那么答案大了,否则答案小了,就把所需 ...
分类:
其他好文 时间:
2019-09-01 12:47:21
阅读次数:
70