首页 > 编程语言 >基础算法

基础算法

时间:2023-06-23 20:55:05浏览次数:47  
标签:le sum 基础 算法 ge 后移 枚举 区间

枚举

枚举是一种常见的算法,通过各种技巧可以优化枚举次数。

【POJ 3061】Subsequence(尺取法):

给定一个长度为 \(n\) 的数列 \(a\),找到最短的区间 \([l,r]\),使得 \(\sum\limits_{i=l}^{r}a_i \ge S\)。\(1 \le n \le 10^5, 1 \le S \le 10^8\)。

这道题的朴素做法是枚举所有区间,时间复杂度约为 \(\mathcal{O}(n^2)\)。但实际上没有必要枚举所有区间,我们可以采用尺取法。首先观察题目,假设我们找到了一个区间 \([l,r]\),区间和 \(\sum\limits^{r}_{i=l}a_i \ge S\),既然区间和已经 \(\ge S\) 了,我们继续往后区间仍然会 \(\ge S\),且一定不是最优解,因此我们可以枚举 \(l\),对于每个 \(l\) 不断把 \(r\) 往后移,直到 \(\sum\limits^{r}_{i=l}a_i \ge S\) 为止,用 \(ans\) 统计最短的区间 \([l,r]\),当 \(l\) 更新时我们就不断后移 \(r\),这样我们就减少枚举了很多不可能是答案的区间,时间复杂度约为 \(\cal{O}(n)\)。

模拟

模拟是一种常见的算法,往往思维难度不大,但十分考察选手的细心程度、处理问题的能力。有的较难的模拟可以通过一些技巧来优化。

双指针

从名字很好理解,两个端点进行枚举。

【P1638】逛画展

博览馆正在展出由世上最佳的 \(m\) 位画家所画的图画。

游客在购买门票时必须说明两个数字,\(a\) 和 \(b\),代表他要看展览中的第 \(a\) 幅至第 \(b\) 幅画(包含 \(a,b\))之间的所有图画,而门票的价钱就是一张图画一元。

Sept 希望入场后可以看到所有名师的图画。当然,他想最小化购买门票的价格。

请求出他购买门票时应选择的 \(a,b\),数据保证一定有解。

若存在多组解,输出 \(a\) 最小的那组

维护区间 \([l,r]\),不断后移 \(r\),并且用桶记录所有画家的画出现的次数,当所有画家都有的时候更新答案,并把 \(l\) 后移(类似尺取法),最终求出最佳答案。

练习:

前缀和 & 差分

标签:le,sum,基础,算法,ge,后移,枚举,区间
From: https://www.cnblogs.com/vistral/p/ji-chu-suan-fa.html

相关文章

  • 垃圾识别系统Python+TensorFlow+Django+卷积神经网络算法【完整代码系统】
    一、介绍垃圾识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对5种垃圾数据集进行训练,最后得到一个识别精度较高的模型。并基于Django,开发网页端操作平台,实现用户上传一张垃圾图片识别其名称。二、效果展示三、演示视频+代码视......
  • 算法
      #include<iostream>#include<bits/stdc++.h>usingnamespacestd;map<string,int>na_mo;intmain(){stringname[15],Zname,Pname;intn,mony,m;cin>>n;for(inti=0;i<n;i++){cin>>name[i];}......
  • 交通标志识别系统Python+TensorFlow+Django+卷积神经网络算法实现【完整代码】
    一、介绍使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Django,开发网页端操作平台,实现用户上传一张图片识别其名称。二、效果展示三、演示视频视频+完整代码:https://www.yuque.......
  • MasterCAM 2021中文版数控编程加工基础入门视频教程
    适用对象:MasterCAM2021中文版内容简介:本教程通过12章节课程详细讲解MasterCAM2021软件的基础操作,包括2D/3D绘图、数控编程和曲面加工等,实战性强,纯干货,结合实际操作让用户快速掌握软件,真正实现学以致用。本教程画质虽不是高清的,但不影响观看,同时附安装包,暂无配套素材文件,好的......
  • C++ 类的基础知识
    1.类的定义类就是数据类型,是用户定义的数据类型,对象可以看成某个类的实例(某个类的变量)。所以说类是对象的封装,对象是类的实例。在类中定义的成员函数,都是inline函数。2.类的修饰符public、protected、private.public进行修饰的成员表示的是该类可以提供的接口、功能、或......
  • 基于深度学习的文本分类6大算法-原理、结构、论文、源码打包分享
    导读:文本分类是NLP领域一项基础工作,在工业界拥有大量且丰富的应用场景。传统的文本分类需要依赖很多词法、句法相关的human-extractedfeature,自2012年深度学习技术快速发展之后,尤其是循环神经网络RNN、卷积神经网络CNN在NLP领域逐渐获得广泛应用,使得传统的文本分类任务变得更加容......
  • mysql基础
    一存储引擎1mysql存储引擎的种类:MYISAM InnoDB(默认)2.MYISAM和InnoDB的区别在于InnoDB支持事物处理和外键约束3.MYISAM和InnoDB的应用场景的区别:MYISAM不需要事物,空间小,已查询访问为主;InnoDB多删除,更新操作,安全性高,事物处理即并发控制查询存储文件showvariableslike'&sto......
  • 深度学习算法相关岗-校招、社招、实习-面试知识要点及答案分享
        本文主要整理了深度学习相关算法面试中经常问到的一些核心概念,并给出了细致的解答,分享给大家。互联算法工程师面试必读书籍推荐百面深度学习算法工程师带你去面试作者:诸葛越江云胜当当购买感受野    后一层神经元在前一层神经元的感受空间,如下图所示:    注意:小卷......
  • 机器学习最新必读-机器学习基础第二版
    本书介绍    本书主要介绍机器学习的相关知识,可以作为研究人员的参考书和学生的教科书。它涵盖了机器学习的基本主题,同时为算法的讨论和论证提供了理论基础和概念工具。它还描述了这些算法应用的几个关键方面。    我们的目标是提出最新颖的理论工具和概念,同时给出简洁的证......
  • 图神经网络(GNN)经典论文、算法、公开数据集、经典博客等资源整理分享
        神经网络的迅速发展,也推动着将神经网络运用到图这一特殊的数据结构的相关研究。    图是一种非欧式结构的结构化数据,它由一系列的对象(nodes)和关系类型(edges)组成,具有局部连接的特点,能表示更为复杂的信息;熟悉和运用图神经网络的方法很有必要。 ......