写题中的技巧
这一篇博客分为两部分:
- 写代码
- 思路
我会将写题中所用到的一些想不到的又不至于单独写一篇博客的小trick放在这里。
写代码中用到的技巧
-
有一种 求 的逆元的方法:
1
2
3
ni[1] = 1;
_F(i,2,n)
ni[i] = (p-p/i)*ni[mod%i]%mod;写题中奇妙的思路(套路)
-
区间 \[l,r] 在线段树上的区间定位数等于 ,其中 表示线段树上包含于 \[l,r] 的区间个数。
-
范围特别小的时候一定要考虑状态压缩。
-
对于一部份题目,可能先写出暴力会对正解有很大的帮助。
-
当你想出了一个很像正解的结果并觉得有问题但是找不出时,相信他就是正解。
-
对于一部份序列题,可以通过二分将原题转为 序列题,再用好维护的数据结构进行维护。
[P2824 [HEOI2016/TJOI2016] 排序](https://www.luogu.com.cn/problem/P2824)
[[AGC006D] Median Pyramid Hard ](https://www.luogu.com.cn/problem/AT_agc006_d) -
动态规划本质上就是压缩有用的信息(dp维度)
-
等价于 且
-
等价于 或
-
有一部分题目是行列可以分开做的,需要注意这样的东西。
-
是一个
long long范围内的质数。 -
拓扑排序可以进行反建图,很常用.
-
有一部分的矩阵题可以行和列分开维护
[P2258 [NOIP2014 普及组] 子矩阵 ](https://www.luogu.com.cn/problem/P2258)此题是将行dfs再将列dp
CF1202C You Are Given a WASD-string… 此题是将行列分开考虑,然后分别DP\前缀和
CF1993E Xor-Grid Problem见blog
C. Wonderful City行列分开DP -
对于一部分计树题,我们可以树->括号序->网格图计数,在对树深度有限制时特别好用。
