- 博客(3)
- 收藏
- 关注
原创 Codeforces Round 919 (Div. 2)题解(A-D)
接着执行A的操作,若删除第i个数,对结果的影响为 ans=ans+a[i]-a[k+i]*2。对于每个查询,利用lower_bound查询>=当前位置的sum,若sum>k,那么就回到上次进行操作二之前,查询sum%mul。特别的,若sum%mul==0,那么查询sum/mul,即当前序列最后一个。对于每对数a[i]和a[i+k],若他们对m取余后结果相同,那么(a[i]-a[i+k])%m==0,所以只需计算每对数之差,a[i]-a[i+k]的最大公约数,若不为1,则可行。cnt:执行操作一的次数。
2024-03-14 15:27:19
380
1
原创 Codeforces Round 932 (Div. 2)题解(A-C)
对于k个message,最小time一定是当b呈升序时。将数组重新按b升序排序,枚举左右端点,此时b的贡献是固定的,将a存入大根堆,计算最多有多少个a。每个子段的MEX一定与整个数组的MEX相同。先找到整个数组的MEX,由于大于MEX的值不会对结果造成影响,故只需保证每个子段都含0~MEX-1。利用set进行计数。比较原始字符串的首字母和尾字母,另更小的位于最终答案的开头。对结果进行分类讨论,由于进行两次操作1可以将字符串还原,所以只需讨论操作数的奇偶性。
2024-03-10 19:09:47
768
原创 Codeforces Round 931 (Div. 2)题解(A—C)
显而易见,当n>30时,尽可能多的取用15的硬币即为最佳策略;但当n
2024-03-07 14:26:53
508
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人