在本博客中,一般写题解的题都是我认为比较有价值的题,然而我还做过一些有一定价值,但并没有达到值得写一篇题解的程度,故将这些题目总结出的套路用一句话概括在这里:

当然如果看到我太久不更请在评论区里催我一下

  1. 计数题里碰到平方可以尝试把它们拆成 每对符合要求元素各自产生贡献(upd on 2021.9.13,CF1187F)
  2. 概率题一定要注意随机变量是否独立,只有它们独立它们的贡献才能直接相乘(upd on 2021.9.13,CF1187F)
  3. 看到序列上的线性变换(指操作可以写成线性变换的形式)可以尝试用线段树维护矩阵乘法维护,如果涉及常数那么矩阵上可以额外维护一个常数维存储这些常量(upd on 2021.9.14,P7453)
  4. 看到 \(c_i\leftarrow c_{i-1}+c_{i+1}-c_i\) 这种形式的东西,应知道这东西等价于对 \(c_i-c_{i-1}\) 的置换(upd on 2021.9.15,CF1110E)
  5. 看到要求 \(x-y=v\) 的数的对数,并且值域不算太大,可以想到差卷积(upd on 2021.9.15,P3760)
  6. 对于某些数论中的题目,关于质因子的状压可以转化为原数的约数,因为每个数的质因子组成的集合本身就可以表示一个状态(不过一般状压质因子复杂度也可以被证明是调和级数或者类似的东西?)(upd on 2021.9.18,NFLSOJ 12429)
  7. 有的最优化问题有时也可以转化为计数问题,通过模上一个或几个大质数并判断余数是否为 0 来求解(upd on 2021.9.18,NFLSOJ 12429)
  8. unordered_map 常数大约是数组的两倍,所以以后状压 dp 之类的题目能删减状态就删减状态(upd on 2021.9.19,NFLSOJ 10131)
  9. 对于质数 \(p\),必然有 \(\forall n\ge p,n!\bmod p=0\),利用这个性质可以使得很多 \(n\) 很大(比方说 \(10^{18}\))的情况变成诈骗题(upd on 2021.9.19,NFLSOJ 10131)
  10. 分块打表有时是一个不错的技巧(upd on 2021.9.19,NFLSOJ 10131)
  11. 看到斜率优化的形式的式子要想起来是斜率优化啊!!!(upd on 2021.9.20,CF643C)
  12. 对于 \(\sum\limits_{i=1}^ma_i=n\) 的数列 \(a\),其中包含的不同数的个数只有 \(\mathcal O(\sqrt{n})\) 种(upd on 2021.9.21,CF1574F,利用这个性质可以不用分治 FFT/求逆)
  13. 线段树维护信息的本质是合并两个区间的信息,因此如果发现一些信息满足可合并性(如链上的一些信息,或者一些有关树的直径/虚树的信息),可以想到线段树(upd on 2021.9.21,CF1083C)
  14. 一个数 \(\bmod\) 完一个比它小的数后大小减半,这有时是一个非常重要的性质(upd on 2021.9.21,AGC003E)
  15. two pointers 是均摊数据结构(雾),不支持撤销(upd on 2021.9.21,NFLSOJ 12430)
  16. 矩阵乘法可以通过“先枚举 \(i,k\) 再枚举 \(j\),并且当 \(k\bmod 16=0\) 时再取模”的套路减少取模常数(upd on 2021.9.22,NFLSOJ 10127)
  17. 对于矩阵乘法的题目,能把矩阵改成向量就改成向量,减少常数(upd on 2021.9.23,NFLSOJ 10127)
  18. 删除操作非常棘手,不妨考虑线段树分治(upd on 2021.9.24,CF678F),也可以倒立(
  19. 看到保证最短路径的前提下,求 xxx 的最值/计数的问题可以考虑建出最短路径 DAG,这样最短路径可以转化为最短路径 DAG 上的路径(upd on 2021.9.25,LOJ 2769)
  20. 区间 DP 的转移一般可以考虑“最后一次进行的操作”,然后将序列分成两个部分并计算贡献(upd on 2021.9.26,P4766)
  21. 看到“每个点的度数 \(\ge k\) 的题目”可以考虑按将所有点及其度压入一个 set 中并动态删点(upd on 2021.9.28,NFLSOJ 12448)
  22. 在构造题中看到下取整可以往抽屉原理的方向思考(upd on 2021.9.28,CF1450C2)
  23. 碰到 LIS/LDS 的题目不要只拘泥地想“\(dp_i\) 表示 \(i\) 结尾的 LIS/LDS 的最长长度”,也可以交换定义域&值域,变成“长度为 \(i\) 的 LDS/LIS 的最大/小结尾元素”(upd on 2021.9.28,NFLSOJ 12449)
  24. 树剖求 LCA 常数非常小,\(\log n\) 跑起来和 \(\mathcal O(1)\) 差不多快,不过会被满二叉树卡(upd on 2021.9.29,NFLSOJ 12456)
  25. 碰到从开头删除/结尾插入,全局插入,并且合并复杂度很高,但插入复杂度不高的题目,可以考虑双栈模拟队列(upd on 2021.9.29,NFLSOJ 12458)
  26. 使用莫队二次离线可以将一些 \(n\sqrt{n}\log n\) 将为 \(n\sqrt{n}\)。(upd on 2021.10.1,NFLSOJ 10175)
  27. 看到 DAG 的计数可以想到枚举度为 0 的点然后容斥(upd on 2021.10.4,洛谷 P6295,更多 trick 可见那题题解)
  28. 有的概率题会让你保留成小数形式 instead of 取模,这时候你就可以考虑重复某个过程直到精度符合要求 instead of 推无穷级数(upd on 2021.10.4,CF623D)
  29. 对于计数题,如果发现等价表达不太好找,可以尝试容斥(upd on 2021.10.11,NFLSOJ 12473)
  30. 对于一些带修的数据结构题,可以考虑离线扫描线并以时间为下标(upd on 2021.10.15,NFLSOJ 12461)
  31. 对于区间查询所有还活着的位置并将这些活着的位置全部删去的模型,可以考虑使用并查集维护,这样可以做到 \(\Theta O(n\alpha(n))\)(upd on 2021.11.2,NFLSOJ 12554)

一些 tips的更多相关文章

  1. Mac上MySQL忘记root密码且没有权限的处理办法&workbench的一些tips (转)

    忘记Root密码肿么办 Mac上安装MySQL就不多说了,去mysql的官网上下载最新的mysql包以及workbench,先安装哪个影响都不大.如果你是第一次安装,在mysql安装完成之后,会弹出来 ...

  2. 【Tips】史上最全H1B问题合辑——保持H1B身份终级篇

    [Tips]史上最全H1B问题合辑——保持H1B身份终级篇 2015-04-10留学小助手留学小助手 留学小助手 微信号 liuxue_xiaozhushou 功能介绍 提供最真实全面的留学干货,帮您 ...

  3. layer.js中layer.tips

    <script src="~/Content/js/layer/layer.js"></script> layer.tips('名称不能为空', '#pro ...

  4. HTML 最简单的tips 怎么支持指定DIV显示提示信息

    <body> <style type="text/css"> a.link{position:relative;} a.link div.tips{ bor ...

  5. CSS:CSS使用Tips

    Css是前端开发中效果展现的主要部分之一,良好的Css书写习惯可以为实际的项目开发提高效率,也可以为实现良好的团队合作提供保证. 一般新手在使用Css的时候经常会犯一些错误,出现一些不经意的漏洞,如果 ...

  6. 【读书笔记】100个Switf必备tips

    声明 欢迎转载,但请保留文章原始出处:)  博客园:http://www.cnblogs.com 农民伯伯: http://over140.cnblogs.com 正文 1.Selector 在Swi ...

  7. 【转】40个良好用户界面Tips

    一个良好的用户界面应具有高转换率,并且易于使用.但要用户体验良好并不容易做到,下面我们整理了40个良好用户界面Tips,希望能对你有帮助! 1 尽量使用单列而不是多列布局 单列布局能够让对全局有更好的 ...

  8. 转:Eclipse Search Tips

    from:  https://github.com/ajermakovics/eclipse-instasearch/wiki/Eclipse-search-tips Eclipse Search T ...

  9. VS:101 Visual Studio 2010 Tips

    101 Visual Studio 2010 Tips Tip #1        How to not accidentally copy a blank line TO – Text Editor ...

  10. [css 揭秘]-css coding tips

    css 揭秘之css coding tips demo(1) html 代码: <body> <section> <div class="demo1" ...

随机推荐

  1. Mybatis 一对多延迟加载,并且子查询中与主表字段不对应 (19)

    Mybatis  一对多延迟加载,并且子查询中与主表字段不对应应用说明. 实现一对多关联(懒加载),一个教研组对应多个教师,既:教师的教研编号与教研组的教研编号关联,并且教师关联教研组外键与教研组编号 ...

  2. 2021 从零开始学Git【新版本Git - 8000字详细介绍】

    我写的这篇文章,主要是记录自己的学习过程,也希望帮助读者少踩坑(比如不同版本可能命令不兼容等).本文面向git零基础初学者,建议读者按照文中命令自己全部操作一遍(注意运行环境). 我的运行环境:win ...

  3. SpringCloud微服务实战——搭建企业级开发框架(五):数据库持久化集成MySql+Druid+MyBatis-Plus

      在引入相关数据库持久化相关依赖库之前,我们可以考虑到,当我们因业务开发需要,引入各种各样的依赖库时,Jar包冲突是我们必须面对的一个问题,Spring为了解决这些Jar包的冲突,推出了各种bom, ...

  4. vue3.x移动端适配px2rem

    1.什么是px2rem px2rem是一个插件能将px自动转换为rem,以适配各种不同的屏幕尺寸.前端开发可以直接使用设计稿量出的尺寸或者蓝湖给出的px进行布局,这样极大的提高了开发效率. 2.前提条 ...

  5. 吴恩达课后习题第二课第三周:TensorFlow Introduction

    目录 第二课第三周:TensorFlow Introduction Introduction to TensorFlow 1 - Packages 1.1 - Checking TensorFlow ...

  6. redis5集群搭建步骤

    通常情况下为了redis的高可用,我们一般不会使用redis的单实例去运行,一般都会搭建一个 redis 的集群去运行.此处记录一下 redis5 以后 cluster 集群的搭建. 一.需求 red ...

  7. Zabbix 5.0:监控阿里云RDS

    Blog:博客园 个人 由于近期压测,需要频繁登录阿里云查看RDS监控,每次登录查看监控步骤较为繁琐,故将监控接入到zabbix. 概述 由于阿里云已做了RDS的监控,我们只需要通过阿里云SDK把这些 ...

  8. 2021.8.12考试总结[NOIP模拟37]

    T1 数列 考场上切掉的简单题. $a$,$b$与数列中数的正负值对答案无关.全当作正数计算即可. $exgcd$解未知数系数为$a$,$b$,加和为$gcd(a,b)$的不定方程组,再枚举每个数.如 ...

  9. 计算机网络之网络层路由选择协议(自治系统AS、RIP、OSPF、BGP)

    文章转自:https://blog.csdn.net/weixin_43914604/article/details/105313629 学习课程:<2019王道考研计算机网络> 学习目的 ...

  10. DDD领域驱动设计架构模式:防腐层(Anti-corruption layer)

    在微服务(Microservices)架构实践中,架构设计借用了DDD中的一些概念和技术,比如一个微服务对应DDD中的一个限界上下文(Bounded Context):在微服务设计中应该首先识别出DD ...