摘要: 考虑根号分块。对于<√3e5的模数,每加入一个数就暴力更新最小值;对于>√3e5的模数,由于最多被分成√3e5块,查询时对每一块找最小值,这用一些正常的DS显然可以做到log,但不太跑得过。考虑并查集在序列上的奇技淫巧。加点不太能做,考虑离线改成删点。并查集维护下一个未删除的点即可。 阅读全文
posted @ 2018-10-26 22:17 Gloid 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 设f[i][0/1]为考虑前i位,第i位为0/1时的期望得分(乘以是0/1的概率)。暴力转移显然。前缀和优化即可。 但是这个前缀和精度无法承受,动不动就nan。 考虑增加一位的贡献。若之前后缀1的个数为x,则增加一个1的贡献为(x+1)3-x3=3x2+3x+1。因此记录后缀1的个数期望、后缀1的个 阅读全文
posted @ 2018-10-26 19:43 Gloid 阅读(255) 评论(0) 推荐(0) 编辑
摘要: A:差点开场懵逼。只要有相邻两位不同就可以作为答案。 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<algorithm> using namespace 阅读全文
posted @ 2018-10-26 18:23 Gloid 阅读(172) 评论(0) 推荐(0) 编辑