随手写

1、博弈论

①搜索模板+打表找规律
②Nim相似,关注“模仿操作”!

2、数学

①埃式筛法只需要预处理出sqrt(n)内的质因数就可以筛任意l~r区间内的质数了
②分段打表比较好用
③交换求和顺序!
④找规律!然后尝试证明、考虑组合意义
⑤斐波那契数列的神奇性质

    定义F[1] = a, F[2] = b, F[n] = F[n - 1] + F[n - 2](n≥3)。
  有F[n] = b * fib[n - 1] + a * fib[n - 2](n≥3),有F[1] + F[2] + …… + F[n] = F[n + 2] - b

⑥注意积性函数!F(p1*p2)=F(p1)*F(p2)

2、概率期望

①对概率,设一堆未知数疯狂列式子,相信可解

3、重要思想

①补集思想,正难则反
②每个二进制位单独考虑,二进制特别神奇
③统计和构造的时候考虑增量,多一个会多出多少贡献
④二分答案,转为判定性问题,但要注意是否真的满足二分性
⑤凸包!
⑥子串是后缀的前缀
⑦等于k的方案数=大于等于k的方案数-大于等于k+1的方案数

4、神奇技巧

①坐标轴转45°,可能会使横纵坐标独立
②用dfn代替节点,表示限制,变成二维平面上的问题
③无根树计数考虑prufer序
④树上路径分成 u->lca 和 lca->v 考虑
⑤(n-1)%(k-1)==0代表是满k叉树
⑥树的重心、直径中点,到根的路径
⑦黑白染色

5、一些优化

①写出DP方程,构造卷积
②能枚举的,尝试验证二分性;能二分的,考虑能否不二分
③列式子,不断改变表达方式;化简,化到最简!!
④最短路的边数最多只有n-1

6、一些经验

①先推好式子在开始写代码,改的时候要改全,改动太多不如重写
②不要弄混数组名变量名的含义,加点注释是不错的
③先理清思路、算好正确率,再写代码
④不要过度依赖于T1,先读题
⑤得到结论要尝试推广,看是否还有特例,是否有没有考虑到的情况
⑥中间乘法不要爆long long,看数据范围记得开long long!
⑦不要急于转化模型,写最暴力的暴力
⑧注意运算符的优先顺序
⑨加一减一之类的边界要想清楚,看看极限下会不会溢出
⑩看清楚数据范围和模数
⑪不要开小数组!不要开小数组!尤其留意哪些数组需要倍长

7、找性质

①连续性
②单调性
③某一个量固定
④连通性、平面图、树形结构
⑤等价
⑥奇偶性
⑦操作的对象唯一,操作次数最多一

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值