• 在很多问题上面,枚举不一定不可行,只要你能剪枝剪得好


          最近遇到很多枚举的问题,但是一开始总是想不到枚举,总是觉得枚举是时间复杂度最高的,最麻烦的,所以肯定很难得出答案,肯定会TLE,但是最终还是用枚举解决了。

          首先是自己思想上面的改变,一开始做算法题目的时候很多时候基本上只会枚举,大多数情况都是通过枚举列出所有可能的选项,哪怕最终for循环嵌套的再多也是那样,但是随着题目做的越来越多,很多的时候枚举早就被我抛在脑后了,所以今天拿出来,发现在一定情况下面,枚举可以快速AC。

          1、枚举的使用环境:在时间要求不是很高,数据量不大,情况是可列的,在这些情况下,枚举很稳定。

          2、枚举的优化:很多题目其实如果你单单使用枚举是过不了的,但是一旦你进行剪枝,那么时间复杂度可能会大大的下降。这里说的剪枝就是提前判断哪些不可能的解,尽可能的少循环哪些已经不能达到最优解的解,一般题目会给出很多边界条件,这些条件就是让你去判断的。

          3、枚举的变种:很多时候枚举确实需要极大的时间去得出最优解,但是,有时候用一些适合的数据结构去存放哪些已经有的解,或者是中途的解(有点dp的味道但不全是),能减少计算量,做到极限就是打表,先枚举所有的解,看到解只有10组的时候,你就可以呵呵一笑,直接输出结果就行了。

  • 相关阅读:
    虚方法(virtual)和抽象方法(abstract)的区别
    IT社区
    C#中动态加载和卸载DLL
    应用程序体系结构
    Enterprise Architect 7.0入门教程
    jQuery插件开发基础1
    asp.net页面事件执行顺序
    codesmith4.1破解版
    在Web.config配置文件中自定义配置节点
    小巧实用的节拍器软件FineMetronome介绍 原创
  • 原文地址:https://www.cnblogs.com/linkstar/p/5277483.html
Copyright © 2020-2023  润新知