摘要:
cf797e 还是暴力,将不同的询问根据k分开,然后bfs,建出一棵树,然后dfs。 时间复杂度:O(能过) 稍微口胡分析一下 大概是 \(min(1,q[1])*n/1 +min(2.q[2])*n/2+min(3,q[3])*n/3+.....\) qi表示第k=i的询问个数 因为每一种k它最多 阅读全文
posted @ 2023-11-06 20:06
gan_coder
阅读(45)
评论(0)
推荐(0)
摘要:
cf1582F2 对于每种数可以维护一个列表v[x],表示到当前位置,最后一个数小于等于x,能够取到的值,对于当前的数ai,我们可以用v[ai]中的值x与ai异或,来更新v[ai+1],v[ai+2]后面的值。 然后就是有两个优化,每次我们更新完后,都对v[a[i]]清空,因为只有两个相同数之间的数 阅读全文
posted @ 2023-11-06 19:50
gan_coder
阅读(13)
评论(0)
推荐(0)
摘要:
cf1322BPresent 首先拆位是显然的,对于两个数a[i],a[j],除了考虑当前位上的数,我们还要考虑是否会产生进位,我们可以利用基数排序+双指针,因为我们每次都是将低位的排好序了,所以我们可以用双指针计算进位,然后分类计算一下,当前为为1的情况即可。 #include<cstdio> # 阅读全文
posted @ 2023-11-06 12:33
gan_coder
阅读(17)
评论(0)
推荐(0)