首页 > 其他分享 >二分答案

二分答案

时间:2022-11-08 21:44:46浏览次数:55  
标签:二分 状态 le 最终 问题 答案

我居然连二分答案都不会了。

决定思考一下啥时候能用二分答案。

  • 最大值最小/最小值最大类问题

最常见的形式。

  • 值域转换为 \(0/1\) 类问题

[AGC006D] Median Pyramid Hard

问题只与数的相对大小有关,可以把问题值域转化到 \(0/1\) 上可能会有更优的复杂度。

具体的,设答案为 \(x\),那么把所有 \(\le x\) 的数变为 \(0\),所有 \(>x\) 的数变为 \(1\),最后算得答案为 \(0\) 说明答案小于等于 \(x\),否则答案大于 \(x\)。

  • 博弈类问题

一次国赛模拟赛考的,到现在其实还是很懵。

Alice 想要让值尽可能大,Bob 想让值尽可能小,可以任意时间结束游戏。

二分一个最终答案 \(x\),那么把所有最终状态权值 \(\le x\) 的状态看作白色,所有最终状态权值 \(> x\) 的状态看作黑色。

那么问题就是检验每次 Alice 从白点走到黑点,Bob 从黑点走到白点,此时谁会胜的问题。

如果最后走到了白色的格子上,说明双方存在一种方案使得最终答案 \(\le x\),否则存在一种方案使得最终答案 \(> x\),于是就可以二分了。

  • 函数变化量类

这个我真的没看懂,求大佬教教。

[ARC016D] 軍艦ゲーム

列出 DP 发现是有后效性的,但是所有的值只跟一个状态有关,并且式子里有 \(\min\),没法直接用线性方程组等方式求出答案。

假设这个状态为 \(f_u\)。考虑二分答案,二分这个状态的值 \(f_u=A\),然后根据 DP 式子求出 \(f_u\),如果 \(f_u=A\),那么说明这个 \(A\) 还可以更大,否则就不能更大。

还有一种写法是看 \(f_u\) 关于 \(A\) 的变化量,也就是把 \(f_u\) 看作 \(f_u=kA+b\),如果 \(k=1\),那么 \(A\) 可以更大,否则就应该更小。

这个真的不是很能理解,如果有大佬能研究明白求告诉我。并且这是好久之前考的题了,我也找不到当时的代码了,所以纯靠记忆瞎扯,如果更大更小反了麻烦告诉我。

一节课时间就想到了这么几个,欢迎补充。

标签:二分,状态,le,最终,问题,答案
From: https://www.cnblogs.com/apjifengc/p/16871317.html

相关文章

  • 【前端面试题】06—16道设计模式面试题(附答案)
    设计模式不是针对某个框架的,而是针对某类问题或某类需求提出的,因此有广泛的适用性。我们学习设计模式不仅要学习理论,还要学习如何解决实际工作中的问题,所以在面试中,设计模式......
  • 【前端面试题】—19道有关前端测试的面试题(附答案)
    虽然工作中有专门的测试人员(QA工程师)帮我们实现对代码的测试,但是为保证开发的代码质量,我们还是要进行单测、自测。测试部分的面试题主要考察应试者对前端测试的了解,主要涉及......
  • 【前端面试题】—26道HTTP和HTTPS的面试题(附答案)
    Web前端就是当用户在浏览器地址栏中输入一行字母看到的页面结果。然而,从输入字母到看到页面中都发生了什么,数据是怎么得到的?这些都离不开HTTP/HTTPS。然而,这部分内容通常被......
  • 二分搜索树
    概念:二分搜索树(英语:BinarySearchTree),也称为二叉查找树、二叉搜索树、有序二叉树或排序二叉树。满足以下几个条件:若它的左子树不为空,左子树上所有节点的值都小于它......
  • 【前端面试题】—53道常见NodeJS基础面试题(附答案)
    说到前端就不得不提到后端,我们给用户展示页面所需的数据正是从后端获取的,所以了解后端的运行原理和技术的实现很有必要。 Node.js是一个不错的选择,它是基于JavaScript语法......
  • 数据结构 玩转数据结构 6-10 二分搜索树的层序遍历
    0课程地址https://coding.imooc.com/lesson/207.html#mid=13471 1重点关注1.1队列实现层序遍历定义和应用场景定义:由上到下,一层层遍历,又称......
  • 二分答案
    1.https://www.luogu.com.cn/problem/P2249用lower_bound最好,二分答案找到大于等于它的最小数2.https://www.luogu.com.cn/problem/P1824https://www.luogu.com.cn/prob......
  • 数据结构 玩转数据结构 6-8 深入理解二分搜索树的前中后序遍历
    0课程地址https://coding.imooc.com/lesson/207.html#mid=13467 1重点关注1.1本节草图三种遍历程序实现的图形解析   2课......
  • 二分查找
    二分查找:请对一个有序数组进行二分查找{1,8,10,89,1000,1234},输入一个数看看该数组是否存在此数,并且求出下标,如果没有就提示"没有这个数"。二分查找思路二分查......
  • 数据结构 玩转数据结构 6-7 二分搜索树的中序遍历和后续遍历
    0课程地址https://coding.imooc.com/lesson/207.html#mid=13460 1重点关注1.1什么是中序遍历和后续遍历中序遍历:就是先遍历左节点,再遍历根......