变量要进行初始化否则会坑你一把 还有变量的命名要注意
有时候n的范围很大,但是a[i]的范围很小就可以预处理
特别注意a[i]<=n的时候考虑固定某一个端点来使用nlogn类似筛法的方式
2.首先一些奇奇怪怪的方法就是打表加随机数
freopen("ans.txt","w",stdout);
rand();
对于某些构造排列的问题如果发现一种特定方式的解或者无法求解出答案
我们可以直接直接使用next_permutation
3.数据不是很大的时候可以直接进行预处理这样查询速度就会非常快
对于多次查询的方式
我们一般难以在查询的时候通过logn的方式得到答案,这个时候我们需要在nlogn的时间复杂度内来解决这个问题
这样我们查询的时候就快的飞起
4.贪心
比赛的时候如果过题的人很多,就大胆猜测,然后直接提交一发
对于十分玄学的题目我们不妨假设他是贪心然后直接去试一下
简单贪心明显错误的时候不妨思考一下反悔贪心
5.模拟和构造
首先要理解题目在说啥然后按照题目意思来一步一步实现
找一些细节,按照要求来
构造先去找打性质,或者没找到的话自己不断构造去发现
然后依照性质推理出逻辑
6.dp
首先我们依据经验来思考如果定义状态方程
接着求出状态转移方程
简单的有状态机
求出如何计算贡献就可以很简单额解决树形dp
7.图论
首先要对基础图论十分了解,十分了解,然后思考其内在核心是什么
8数论
简单的推式子还是的要会,以及求导
欧拉降幂,矩阵快速幂
9. 建设性算法我么也在大多数称之为思维题
比如与数学有关 以及各种奇怪的表达
这个时候需要我们去进行多去思考发现题目的特性然后不断的认真论证 不断的思考这个
时候不在重点考查算法而是一个人的思考和动手能力可以发现本人在这方面十分欠缺还需继续努力