2019.10.03题解
10min:打完T1,为了不滑天下之大稽,打了一个对拍
50min:打完了T2T3的暴力,准备推一推T2。
2h:打完T2的正解和对拍。
3h:T3写了一个O(n*log2(n)*log2(n))的40分算法。
最后调T3的60分线段树调到考试结束也没过对拍。
期望分数:240
实际得分:200
就是因为这一个智障级的错误!
题解:
T1
对于每个a[i],O(sqrt(a[i]))预处理出ta的所有约数,用map或hashmap存起来即可。
T2
把商品和询问离线并按时间排序,枚举时间,是商品就跑背包,是询问则二分答案,背包是一维的,空间复杂度很低,
时间复杂度O(n^2*max(val)+m*log2(n*max(val));
T3
开一颗线段树,把操作扔到线段树里,再把线段树扫一遍,用并查集维护最长链(分类讨论6种情况),注意因为回溯时要删除操作,所以并查集要按秩合并。