码迷,mamicode.com
首页 > 编程语言 > 详细

记算法思维

时间:2019-06-29 22:02:52      阅读:117      评论:0      收藏:0      [点我收藏+]

标签:自己   状压dp   优先队列   效率   a算法   16px   思考   树状数组   操作   

目的

其实就是想总结一下自己做题中用到的思考方式,虽然我知道即使写了也没用??(还是要靠多多刷题)。本文纯粹瞎写。

正文

模拟思维:

模拟思维是最常见的做题方式:按照题意和样例的操作,一步步模拟过程,从中理解到问题的本质。一般看不懂题目也需要进行合理的模拟进行突破,或者直接通过模拟得出答案。

暴力思维:

暴力思维就是对于数据量小的题目,可以枚举所有状态来得到答案。涉及到的知识:dfs,状压dp。

排序思维:

排序思维就是对于题目给出的数据,经过一定的排序后,可以在复杂度较低内解决题目的问题。而且,很多题目都是要先排序后才能对数据进行处理。涉及到的知识:c++ stl sort,莫队。

贪心思维:

贪心,是在每一步选择中采取优先策略,从而得到答案的思维。前提是:要保证每一步采取这个优先策略肯定是得到正确的最优解。涉及到的知识:dijkstra算法,最小生成树。

分解思维:

分解,一般是对于复杂的问题,可以分解成小问题(子问题),然后从这些子问题来推出最终问题的答案。涉及到的知识有:动态规划,分治,分块。

优化思维:

优化思维一般是碰到直接做题目复杂度高的情况,这时需要进行时间的优化。当然排序是最简单的优化,除此之外,还有利用前缀和,数据结构的优化。涉及到的数据结构:栈(包括单调栈),队列(包括单调队列),堆(或者优先队列),线段树(简单形式:树状数组),并查集。

想说的话

其实上面的思维都是基础的东西,关键还是要自己多学相关算法和多做相关题目,才能得到实际的提高(不过,对于新人(以前没参加过算法竞赛)来说我觉得上面是必须要了解的思维,不然做题效率很慢??)

暂更???

记算法思维

标签:自己   状压dp   优先队列   效率   a算法   16px   思考   树状数组   操作   

原文地址:https://www.cnblogs.com/happy-MEdge/p/11108005.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!