分治
鹭天
敦立坤我是你爹
展开
-
【海亮DAY6】 分治
所谓分治,便是分而治之——题记一、分治本质:(注:当n=2是又称为二分)接下来附上百度上贴的步骤:用图解释那么从这张图上就可以看到分治的主要实现方法就是递归,先把原问题分成若干个小问题,再一次求出每个小问题的解,再反上去用每个小问题合成原问题的解。这便是一个典型的递归的过程。(关于递归我会下次再说)那么分治有以下优美的模板if 问题不可分{ 直接求解; 返回问题的解; } ...原创 2018-07-11 13:39:12 · 522 阅读 · 0 评论 -
【题解 && 蓝书刷题 && 二分答案】 Best Cow Fenes
题目描述: 农场主 John (简称 FJ) 的农场有一长排的 N (1 <= N <= 100,000)块地组成. 每块地有一定数量 (ncows) 的牛, 1 <= ncows <=2000. FJ 想修建环绕邻接的一组地块的栅栏, 以最大化这组地块中平均每块地中牛的个数. 这组地块必须包含至少 F (1 <= F <= N) 块地, F 作为输入给出. 给...原创 2019-07-06 21:24:39 · 282 阅读 · 0 评论 -
【金华集训】 分治笔记
基本原理:通过将区间分成两个区间,来将问题分成两个子问题。 一些基本问题 一.求所有区间的最大值之和 对于一段区间[l,r][l,r][l,r],我们找出他们的最大值的位置x,这个位置的贡献即为在[l,r][l,r][l,r]范围内通过x的一些区间。 这些区间的总个数即为(x−l+1)∗(r−x+1)(x-l+1)*(r-x+1)(x−l+1)∗(r−x+1) 通过乘法原理很容易得到 总的方案...原创 2019-07-29 18:36:26 · 156 阅读 · 0 评论 -
【题解 && 分治 && 金华集训】 平面最近点对
题目传送门 题目描述: 给定平面上n个点,找出其中的一对点的距离,使得在这n个点的所有点对中,该距离为所有点对中最小的。 Solution 这题考虑分治。 先将点对按照横坐标排序,每次进行分治时每次以中间的横坐标的点为分界线分治。 我们设中间那个点的编号为$mid 我们将距离最近的点对分为三类: 1、[l,mid]间距离最小的点对[l,mid]间距离最小的点对[l,mid]间距离最小的点对 2...原创 2019-07-30 18:43:54 · 292 阅读 · 0 评论 -
【金华集训 && 笔记】Day 7——二分
二分 一、二分查找:要求在log的时间内在一串数中找出其中一个数 二分答案必须保证单调性,所以先要将序列排一个序 每次将区间二二分,将值与中间的数进行比较,根据比较情况分区间查找 这样的话必定能舍弃一个区间 所以总的时间为O(logn)O(logn)O(logn) 例:在一串序列中找出≤x\leq x≤x的最大的那个数 int l=1,r=n; while (l+1<r){ i...原创 2019-08-03 13:20:40 · 143 阅读 · 0 评论 -
【题解 && 二分答案】 Packmen
题目传送门 题目描述: 给出一个1*n的网格。每个格子中可能有人或食物,也可能为空。 人移动一单位距离需要一秒,当移动到一个含有食物的格子时他就会把食 物吃掉。吃不需要花费时间。人可以任意地变动行进方向且不花费时间。 你的任务是计算出所有食物被人吃完的最少时间。 //注:所有人可以一起移动,且n≤1e5n\leq 1e5n≤1e5 Solution 看到这道题的范围,就知道这道题基本只能用nlo...原创 2019-08-03 19:33:21 · 190 阅读 · 0 评论