1.关于时间复杂度的分析y总的总结
变量要进行初始化否则会坑你一把 还有变量的命名要注意
https://www.acwing.com/blog/content/32/
有时候n的范围很大,但是a[i]的范围很小就可以预处理
2.首先一些奇奇怪怪的方法就是打表加随机数
freopen("ans.txt","w",stdout);
// 直接用printf打印到对应的文件里面也可用于查找规律
rand();
//然后对于一些特别奇怪的题目可以使用rand()%x的随机数的方法
3.数据不是很大的时候可以直接进行预处理这样查询速度就会非常快
首先必须针对数据范围处理 如果特别大的话可以知道大部分时间为o(1)
4.贪心
试图去到题目的最优解 然后自己构造数据论证一下是不是最优
比赛的时候如果过题的人很多,就大胆猜测,然后直接提交一发
对于十分玄学的题目我们不妨假设他是贪心然后直接去试一下
5.模拟和构造
首先要理解题目在说啥然后按照题目意思来一步一步实现
找一些细节,按照要求来
构造的话可以自己先手动模拟试一下然后总结性质和规律
6.dp
如果题目在不同下会有一个最优解的出现然后随着每个不同点的变化而变化那么就哟啊使用dp how 在于不停的去转移 通过最开始的暴力然后逐步优化
找到状态转移方程
7.图论
首先要有一定的模板基础和对一些知识点的理解然后多做题
都可以直接或者间接的联通==>>最小生成树
8.高级数据结构
必须对大多数数据结构有所涉猎,然后才可以解出的题
9. 建设性算法我么也在大多数称之为思维题
比如与数学有关 以及各种奇怪的表达
这个时候需要我们去进行多去思考发现题目的特性然后不断的认真论证 不断的思考这个
时候不在重点考查算法而是一个人的思考和动手能力可以发现本人在这方面十分欠缺还需继续努力