话说lyd昨天没讲完他的该死的贪心,所以今天继续讲

贪心思想是考虑AB是最快的人,CD是最慢的人,要把CD两个人送过河,只有两种方案,牵扯到四个人,并且n个规模的原问题化成了n-2个规模的子问题

那么最后有两个情况,四个人和三个人,如果是四个人就直接按刚才的方法搞一搞就好了,如果是三个人的话,就有两个方案,一个是A来回送,一个是AB一起操作,就是在两个之间取min就好了

贪心算法在骗分时的运用主要集中在两点:

1.贪心算法失效时该如何补救?

2.如何利用贪心算法来提升自己的一个暴力算法?

对于第一种情况, 我们可以采用贪心算法与随机化算法的结合(例如模拟退火)

在决策时有概率接受比当前情况差的方向

在搜索到结果时以一定概率跳出当前解,重新开始贪心

在贪心开始的时候,利用随机化选择多个起点开始贪心,取其最小值

2.贪心算法与搜索算法的结合

通过一定程度地选择次优解来计算答案,k-优搜索策略

结合贪心与搜索的策略,在大范围内贪心(用贪心剪枝),收束到小范围后开始搜索

分治:

分治分治,分而治之,分治算法就是将一个大问题划分为几个更小规模的问题并加以解决,通过解决子问题最后解决总问题。

分治算法在OI中的运用主要在两个方面:

1.基于二分查找、三分查找的运用

2.将题目划分为更细小的子问题的运用

我们将按顺序来讲解这两个方面

二分的本质是:在一个有序区间内确定一个边界,在边界的一边的元素满足某种性质,而另外一边不满足;

故二分经常用于解决如下类型的问题:

1.简单的二分查找

2.二分答案(即求一个单调函数在满足某个性质下的最值)

3.最值的最值(最常见的二分题类型)

差分前缀和加二分

你现在需要给小A CntA 个自然数,给小B CntB 个自然数

但是给小A的自然数不能被x整除

同理给小B的自然数不能被y整除

请问需要给的最大的那个自然数最小是多少?

二分答案 v ,因为 a 不要被 x 整除的数,所以我们可以

先把 被 x 整除的数但不被 y 整除 给b,

再把 被 y 整除的数但不被 x 整除 给a。

然后剔除所有被 x*y 整除的数

剩下的数与 x 和 y 都互素,判一下能不能好好的分配就可以

三分

三分的难度是要比二分少的,因为三分函数的应用方面比较少

double search (double l, double r) {
while (l+eps < r ) {
m1 = ( * l + r) / ;
m2 = (l + r * ) / ;
double f1 = f(m1), f2 = f(m2);
if (f1 < f2) l =f1;
else r = f2;
}
return l;
}

如果函数不是单峰的该怎么办?

分块

分块算法相当于是一个对于线段树和树状数组算法的下位替代品

由于其算法简单粗暴十分好写故广泛地运用于骗分领域(滑稽

下面是三个

1.给出一个长度为n的数列,以及m个操作,支持区间加法,单点查询

把长为n的数组分成√n块,对其中某一个区间[l,r]进行修改

  1. l和r在同一块里    直接跑,复杂度不超过√n
  2. l和r在相邻的块里    直接跑,复杂度不超过2√n
  3. 其他情况    把l和r所在的块暴力增加,对中间的块打标记,复杂度不超过3√n

2. 给出一个长为n的数列以及m个操作,支持区间加法,并询问区间内小于等于某个数x的元素个数

  每个块内部排序

  1. l和r在同一块里    直接跑√n
  2. l和r在相邻的块里    直接跑 2√n
  3. 其他情况    两边暴力中间二分√n logn+2√

还有一个特别恶心的操作

3. 给出一个长为n的数列以及m个操作,支持区间开方,区间求和

我们发现一个longlong范围的数最多六次开方就会变成0或1

我们如果某个区间里每个数都是0或1就不用管他了

复杂度o(n√n+6n)

记录color[i]表示下标为i的球的颜色

Pre[i]表示前一个颜色为color[i]的球的颜色(前一个颜色和i相同的球)

引理:

如果Pre[i]<x<i,那么[x,i]区间内只有一种颜色为color[i]的球

所以:

查询[l,r]中有多少不同的颜色

只需要查询[l,r]种所有pre[i]<l的i的个数

对于修改,只需要对每一种颜色开一个set,修改的时候用类似于链表的方式将后驱的pre指向前驱就好了

或者暴力改也可以,qwq这个题修改比较水

搜索

最基础的是BFS和DFS

QBXTD2上午的更多相关文章

  1. SSH-Struts第三弹:传智播客视频教程第一天上午的笔记

    一. 框架概述1.三大框架 : 是企业主流 JavaEE 开发的一套架构 Struts2 + Spring + Hibernate 2. 什么是框架?为什么要学框架 ?框架 是 实现部分功能的代码 ( ...

  2. JAVA判断当前时间是上午am还是下午pm

    //结果为"0"是上午 结果为"1"是下午 public class GregorianTest { public static void main(Strin ...

  3. PKUSC 模拟赛 day2 上午总结

    今天上午考得不是很好,主要还是自己太弱QAQ 开场第一题给的图和题意不符,搞了半天才知道原来是走日字形的 然后BFS即可 #include<cstdio> #include<cstr ...

  4. PKUSC 模拟赛 day1 上午总结

    思考了一下第二题,觉得有无数种乱搞做法 类似什么bitset压位,MCS染色之类奇怪的做法 然而都是玄学正确性或者玄学复杂度 先放题解把 第一题显然具有单调性,二分就可以啦 O(nlogn),貌似输出 ...

  5. 第一天上午——HTML网页基础知识以及相关内容

    今天上午学习了HTML基础知识以及相关内容,还有DW的基本使用方法. HTML(HyperText Markup Language):超文本标记语言,超文本:网页中除了包含文本文字之外,还包含了图片, ...

  6. 九月 26, 2017 10:18:14 上午 com.sun.jersey.server.impl.application.RootResourceUriRules <init> 严重: The ResourceConfig instance does not contain any root resource classes.

    Tomcat启动错误:九月 26, 2017 10:18:14 上午 com.sun.jersey.server.impl.application.RootResourceUriRules <i ...

  7. 夏令营提高班上午上机测试 Day 2 解题报告

    那一天,日照一中夏令营数据结构提高班的同学们终于想起了,被Day2上午的三道题支配的恐惧……   是的..这一天的题有点难想.. 本来打算前天写这篇随笔,然而前天在机房和同学打luogu月赛…… 昨天 ...

  8. Day 1 上午

    唉,上午就碰到一个开不了机的电脑,白白浪费了半个小时,真的难受QwQ POINT1 枚举 枚举也称作穷举,指的是从问题所有可能的解的集合中一一枚举各元素. 用题目中给定的检验条件判定哪些是无用的,哪些 ...

  9. 云栖大会day2总结 上午

    第二天上午主要是参与了开发者专场 上 09:00-09:40 线上线下融合时代的工程师成长 李佩 饿了么高级算法总监 09:40-10:20 如何统一阿里巴巴代码规范:探寻工程师文化之路 玄坛 阿里巴 ...

随机推荐

  1. mysql中页的组成

    页InnoDB采取的方式是:将数据划分为若干个页,以页作为磁盘和内存之间交互的基本单位,InnoDB中页的大小一般为 16 KB.也就是在一般情况下,一次最少从磁盘中读取16KB的内容到内存中,一次最 ...

  2. debug --- 使用Eclipse

    debug必知(快捷键若无效,有可能是与其它软件的快捷键发生冲突的原因) 1.F6  ——  单步执行代码,即顺序一行行地执行源码 2.F5  ——  跳入当前调用的函数的内部,即进入函数内部执行源码 ...

  3. django RBAC类

    # -*- coding: utf-8 -*- ''' @author: Swain @contact: 624420781@qq.com @file: middlewares.py @time: 2 ...

  4. H5 2次重定向301

    测试环境http ,生产https,导致请求重定向.加之H5自己的一次请求重定向,一共2次.

  5. CentOS 添加环境变量的三种方法

    在CentOS 系统上安装完 MATLAB 后,为了使用方便,需要将 matlab 命令加到系统命令中,如果在没有添加到环境变量之前,执行“matlab”命令时,则会提示命令不存在的错误,如下所示: ...

  6. thinkphp5.11 关于数据库连接的配置

    config.php <?php// +----------------------------------------------------------------------// | Th ...

  7. Rust学习-阶段1学习总结

    学习Rust已经两周了,基本上是断断续续的在学,或者是在上下班坐公交时,或者是在ODC没事做时.现在已经学习了Rust程序设计语言的前5章,是时候做一个总结了.关于数据类型或者if else这种内容我 ...

  8. GooFlow

    目前的下载网址:基于JQUERY的WEB在线流程图设计器GOOFLOW 0.7版

  9. 在百度ueditor上粘贴从word中copy的图片和文字 图片无法显示的问题

    我这边从world 里面复制粘贴图片到编辑器中,它自动给我上传了,但是我是用的第三方的要设置一个token值,我找了很久,也没有找到应该在哪里设置这个上传的参数,如果是点击图片上传,我知道在dialo ...

  10. 2018 计蒜之道 初赛 第五场 A 贝壳找房搬家

    贝壳找房换了一个全新的办公室,每位员工的物品都已经通过搬家公司打包成了箱子,搬进了新的办公室了,所有的箱子堆放在一间屋子里(这里所有的箱子都是相同的正方体),我们可以把这堆箱子看成一个 x*y*z 的 ...