做题思考总结

每次做之前看一看。做题千万不要分心,不要做一下这道题就去干别的事。

OI思想:正反,抽象,等效,益少,独立

对于OI思想的一些思考与理解

独立:对于那些会改变的值,比如说数组之类的,显然他的下标的关联越少越好。比如f[k]和f[i-j]相比,肯定是前者更好,因为前者更为固定,通常可以通过前缀和或是其他的方式来优化。又或是那些由枚举得到的值,显然预处理存起来后会更好。

抽象:这是最好理解的,就是把一些实际问题转化成图或是一些现实不存在的东西,方便使用各种算法去求解

正反:有的题目从正向不好操作,就可以反过来看看是不是更好求解,比如让你移动棋子可以变成移动空格

益少:显然,状态数越少,分类的情况越少,会是更优的。

等效:这就需要很好的感觉,要能发现什么情况几种东西其实是等价的,可以减少很多讨论。

总体:

1.一定要想写好思路,并且确定思路的可行性,并在脑海中理清楚代码如何实现后在写。可以避免全部白打。!!!一定要确保可行性后再写,不要写假了。
在遇到难点的时候把问题打出来,对着问题去找解决方案。

2.读懂题意后再写

3.预处理可以几种预处理一起使用,可以事先存储出尽量多的数据

4.可以边做边列做题记录。记录格式:

xx题目 特殊性质: (这道题有什么特殊的点) 1.莫一维特别小 =>可以从这一维去枚举,dp 大致思路: 怎么做,代码怎么打 问题点: 1.需要区间修改。 =>使用线段树 ......

做题时如何思考

思考一定要深入,不断思考本质

1.可以把操作,问题分开讨论。比如可以通过 将问题转化为几种好处理的情况。(如环上问题就可以转化为链,再讨论有没有过端点)
=>

2.不等式可以尽量转换出一些特属的值,比如说0之类的

3.做题时可以找每一道题的特殊点,有什么特别的地方。

4.可以自己画一画图,手模一下。

5.敢于大胆猜测结论

6.用等效的思维,什么情况下是等效的 =>

7.一个值如果可以单独表示的话,尽量单独表示,不要由前面的值推来,这样可以方便优化(如前缀和) =>,

8.一些结论题可以用过打表来找结论

9.可以反着从不同的角度看问题。比如找一段和小于p的数可以变成去找一个区间和小于p =>

贡献最值

思考说明情况下会有贡献,贡献是如何变化的

数学题

1.看到整个题都是一些数学,并且不好跟图之类转换时,一般就是数学题,就需要去推式子(虽然不是数学题有的也要推式子)

2.数学推出了比较重要的式子时一定要去想有什么用,该怎么写代码

dp

1.觉得当前状态无法转移的时候,可以多保存几个状态,看看是否可以转移了

数位dp

1.一定要记得讨论前导0!!不要觉得可以不要

2.要记得清空dp数组。

3.通常是答案跟每个数的组成有关,可以用数位dp

4.数位dp转移中的ans+=dfs(...)。表示的含义是所有i(dp[x])的答案(idp[x])是一个数

状压dp

1.一般情况下有一维很小且只有两种状态

一些杂碎的小技巧

1.平均数可以都减掉一个数变成0,变成前缀和


__EOF__

本文作者shAdom
本文链接https://www.cnblogs.com/shadom/p/17554785.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   shAdomOvO  阅读(34)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示