arc192

A:
容易发现,我们arcrarc这样只会有一个位置没填上,然后就做完了?尼玛,这个东西是个环,还要再考虑一点。就是有1,那么肯定可以,否则如果全都是零,那么之和长度有关,尝试构造一种一点都没有空的东西。ARCR,所以长度为4的都可以,那就是4的倍数都可以,其他为倍数的可不可以呢?完全不知道呜呜,下面是不是要证明一下。S开头为arc,则最后一位肯定是car,然后就是证完了,只能这么填。

寄,分类讨论又挂了。直接枚举%4的余数就做完了

B:
题意有点繁琐了。原来是deepseek,原汁原味的题面也挺好的。
首先到n个数就赢了,那么拿到n-1就输了,因为下一个直接拿n了(这里只是个数,并不是索引)。
所以他们会在拿到n-2后把所有数都取完,所以谁取n-1由前面的前缀和的奇偶性来讨论。既然都是奇偶性了,我们不妨将所有数都%2,然后就只和0,1个数有关了。然后n=1,n=2特判掉。然后暴力一点就是n^2求sg函数。对于n为奇数可以通过sg推回n为偶数,然后对于n为偶数,那么如果sum(n-2)为偶,那么b赢,反之就是a赢。继续分讨如果sum(n)为偶,那么就代表有偶数个奇数,偶数个偶数,那么b可以跟着a一起搞。如果sum(n)为奇,那么就代表有奇数个奇数,奇数个偶数,那么a想赢的话就要保证前面前缀和为奇,怎么保证,只要把所有奇数或者所有偶数都去过来即可。如果a不取完的话,b就既可以取奇也可以取偶,a就输了,然后就做完了。题解貌似很多都做错了?我感觉我是对的

C:
25min取之
排列,连边?但是貌似没有什么鸟用,但我的思路确实是从排列这里出来的。我们如果将我们的询问连成图的话,那么一个环上的一条边就有可能是其他边的权值之和。比如我们有p1 < p2,那么我们询问p1,p3,p2,p3,如果s0=s1+s2,那么p3在p1和p2之间,如果s1=s0+s2,那么p3就在p2右边,如果s2=s0+s1,那么p3就在p1左边,这样我们就知道了相对大小。那么4个呢?假设当前最小的为pl,最大的为pr,我们查询px,我们询问pl,px和pr,px,然后对于每个p,我们假设可以知道其到左端点的距离,如果判断出来px在pl左边,那么所有p到左端点的距离都加上f(px,pl),否则找到最后一个py使得f(pl,py) < f(pl,px),然后插入即可,然后就做完了,用平衡树可以做到O(n log n)由于查的不是距离,而是区间和,所以一些细节还是要注意一下。
继承现在的想法,我们还想知道每个数现在具体的值
分讨
如果当前p1,p2,p3(p1,p2是当前的最左,p3是当前查询的东西)
我们第一个查询就是\sum_{p1}^{p2} 那么我们查询的就是\sum_{p1}^{p3}
查询的两次加起来肯定会有一个类似三角形的的东西
如果p3在p1,p2之间,
p1,p3查询的就是
我们能通过这三个查询获得至少一个数的值,同时我们能知道相对大小,然后就做完了
再好好考虑一下,我们要的是开头
首先我们可以知道p1,p2,p3的相对大小
s1=(p1,p3),s2=(p2,p3),s3=(p1,p2)
p3 p1 p2
s1+s3>s2
s1+s2>s3(把s3移到左边即可)
s2+s3>s1(同样)

p1 p3 p2
s1+s2>s3
s1+s3>s2
s2+s3>s1

p1 p2 p3
s3+s2>s1
所以p3在最左的肯定要用三个条件判,然后否则我们枚举比哪个大,插到第一个到p1的距离比p3大的数前面,所以我们还要存这个东西,然后我们插入最前面的时候给所有后面的数都加上p3到p1减去p1的值,这个值是我们一开始要求的怎么求a[p1]和a[p2]呢?不太知道,而且我们是要精确求的,所以就比较搞了
所以就做不下去了
所以我们先用p1和所有数进行询问,发现最大的就一定是端点这个需要(n-1)次操作,然后从端点一直插和,然后从小到大排序,就是这个p的顺序了,如果p1>p2,则要反转序列,然后我们询问一次p2~p3即可知道p1的值。

posted @ 2025-07-09 10:14  wuhupai  阅读(2)  评论(0)    收藏  举报