牛牛的暑假
文章平均质量分 83
牛客暑假多校训练营
JGOOD是是
芝士JGOOD
展开
-
2023牛客暑期多校训练营8(A/H/I/J)
根据题意我们可以发现,因为数字是按顺序1,2,3......插,所以若一段区间[l,r]满足条件,那么[l,r'](r'原创 2023-08-15 17:08:37 · 529 阅读 · 0 评论 -
2023牛客暑期多校训练营7(C/I/M)
找f[i]的f[i-1]的从高位到低位,第一个不同的位即可,我们设这个是第k位。此时a[1]的第k位必须和f[i]第k位的值相同,这样子就能让f[i]^a[1]的第k位是0,f[i+1]^a[1]第k位是1,保证了前者小于后者。首先我们先初始化a[1]二进制位为-1,这代表a[1]的这个位可以是0,也可以是1。然后我们再根据a[1]^f[i-1] <= a[1]^f[i]此时我们得到了n个-1的值,我们我们最多能表示第2的n次方大的值,此时我们只需将(k-1)拆分成二进制依次填入-1的位置即可。原创 2023-08-10 17:00:39 · 555 阅读 · 0 评论 -
2023牛客暑期多校训练营2(D/E/F/H/I/K)
该情况可推广至三个棋子,三个棋子的距离端点距离可以抽象为所有棋子距离端点的距离之和,棋子可以在端点之和为奇数的区间内反复横跳,来保持自己的最终的奇偶性,从而导致先手必胜,反之先手必败。操作A相当于将x变成反码,也就是在取模意义下,操作A会令x=-x-1,而操作B会x=x+1,所以我们先开两个前缀和数组,一个记录前缀A的个数,一个记录前缀的贡献,然后在每次操作中,若l~r的区间内的A的个数为奇数,则原本的贡献要乘上-1,如此模拟即可。所以我们考虑倒着贪心。dp[i][0]表示第i位移动到i-1位的情况。原创 2023-07-26 17:21:17 · 525 阅读 · 0 评论 -
2023牛客暑期多校训练营1(D/H/J/K/M)
每次分治Walk Alone赢的基础概率为1/2,而后面的第x个的0会产生(1/2)^(x+1)的贡献,这表示形成之前x-1情况的概率*1/2,所以每位1的总贡献为1/2+(1/2)^2...(1/2)^(零的个数+1),最后分块求和就完事了。因为连续的x-1位0对于的答案的贡献为-(2^x-1),而连续的x-1位0后的第x位1的贡献为2^x次,它们的和即为-(2^x-1)+2^x=1。我们将a[i]>=b[i]的序对称为序1,a[i]原创 2023-07-18 18:08:43 · 616 阅读 · 1 评论