一些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;

 

posted @ 2019-09-06 17:41  Rorschach_XR  阅读(214)  评论(1编辑  收藏  举报
//雪花飘落效果