一些idea

二分答案似乎和最小生成树有着不可描述的奇怪关系。(滑稽

联赛级别的在矩形上乱搞的题无非几个思路(按出现概率排序):建图,二维前缀和,dp

涉及到求合法区间数的问题往往要用到桶、等差数列等思想,或者尝试求最靠左/靠右的合法端点,总之避免ans++;

tarjan、拓扑、DAG上dp他们三个卡在一起。

二分答案是骗分利器,也有很大可能是正解,当然使用不当会导致爆0。分析对单调性是关键。

单调栈可以求最大值控制区间,这些区间构成一棵完全二叉树,可以启发式合并。

涉及到区间和整除某个数的问题先想余数桶。

NOIP模拟13的优美序列这道题有建图跑Tarjan/线段树扫描线/预处理答案之后毒瘤分块/析合树四种做法,都挺好的。

lower_bound可以水过很多看似要用数据结构的题。

把一个数拆成p进制的时候要从高位往低位拆。

边权为1的图求最短路考虑bfs。边权为1和0的图求最短路考虑双端队列bfs。

1500的数据有可能是bitset。($O(frac {n^3}{32})$)

二进制枚举子集

for(int j=W;j;j=(j-1)&w);

STL清空的骚操作:

set<int> s;
s.insert(...);
set<int> swp;
swap(swp,s);

数组负数下标处理:

const int N=2e5+5;
int a[N];
int *b=a+100000;
cout<<b[-233]<<endl;
原文地址:https://www.cnblogs.com/Rorschach-XR/p/11477163.html