1. unordered_map
现象
之前经常当O(1)用,作为一些卡常题的必备杀器,
而且,有的hdu/lc题不用umap的话,就只能手写哈希
但是,上次cf里写了个umap被卡了,
这才意识到之前看到的博客不是无稽之谈
其实我赛后也发现了,自己卡了自己几发没卡掉
由于ai(1<=ai<=1e9),hack者构造了一组n=2e5的,
分别长为7692的ai%126271=1,...,长为7692的ai%126271=26的数据,就卡t了
原理
https://jiuaidu.com/jianzhan/884887/
参考了这个思路来源,
for gcc 6 or earlier, 126271 does the job, and for gcc 7 or later, 107897 will work.
简言之,
gcc<=6的,用126271作为模数hack,
gcc>=7的,用107897作为模数hack
解决方案
尽量在cf不用umap,只有在以下场合,才可能考虑umap,
1. ai值域非常小,不过此时显然可以用数组
2. 通过题目限制,使ai%mod=j的数组不存在
2. endl
输出endl时会强制清空缓存,可能会慢导致tle
解决方案
#define endl '\n'