NOIP2024游寄

Day-20?

T1

二分有想法了很久,但是一直没想到二分什么东西,就一直在手搓样例证伪自己。

然后就莫名其妙的想出来了?

因为上下界没搞定白白浪费了许多时间T4的暴力时间,最后换了一个比较新颖的二分写法过了。

T2

不难发现子串的传递性,二分的性质一下子就出来了,但写的时候 check 处理的晕头转向,很多地方也不知道%一个 lena 是在干什么,反正又调了半天。

似乎有一个样例没过却拿了23pts?

补的时候好像没有改动太多地方就过了,才发现考试的时候写的一些想当然的东西是对的,反而一些我注意到了的“问题”给对的改错了。

T3

n3n^3 的区间dp是显然的,不过一看期望就敬而远之了,其实n100n \le 100 的40pts甚至n5000 n \le 5000的80pts是有戏的虽然以我的dp不敢保证

代码不是很长但期望似乎有点难理解。

T4

部分分、性质巨多,试图想了一会正解,但我发现按dfs序想居然要我 O(n)O(n) 枚举LCA? 加上T1,T2两个二分耽误了不少时间,果断弃疗,只是草草的打了性质A的不带修情况拿了10pts。

听了听讲评,其实还可以理解,感觉有30~40pts的暴力是比较可做的。至于正解,转成欧拉序可以有一些比较优美的性质方便数据结构维护,但线段树要维护l,m,r等等好几个东西,分讨也不少,先放放吧。

/bx smy补出来了T4

Day-14

T1

好想又好写,只要在筛一下质数,再判断一下若干次方即可。

但我先是没判次方,后面手动统计每个数是否有质数因子,发现这很显然是有的。

T2

打了个表,发现似乎有什么性质,二进制都打出来了,还是试图找 O(n)O(n) 的写法,看看 aia_i 之间是不是有什么联系,异或了一下,什么也没发现,只能打40pts跑路,然后发现不做数据点分治,判断B是否大于就能水过55pts。

显然对于每个B,如果包括则其小于A且B的二进制1为必然被A的所包含,只要一直把A删一即可判断出A所能包含的B即可。

T3

30pts也挂了,阴间,我先写着。

写了一大坨丑陋的东西只拿了30pts,甚至没过第二个样例。

自动机是显然的,*号只用当成下一个即可,反正全都能匹配。

高精好烦,不一定补的出来了

T4

我们假定牛牛不会因为前一扇门关上而当前的位置门也要关上而被压成牛排,那只要一直向前尽可能走即可,简单明了,可得30pts。

hack当然也简单明了,ii 位置的门关闭时间为1到正无穷,而 i1i-1 的门会在牛牛走到后落下。

对于题面的 ai,bi,cia_i,b_i,c_i ,bib_i 可以等于 bib_icic_i 等问题,相等的唯一意义就是该时刻 aia_i 这地方不能待了。

飞哥讲的好像有问题,他的代码可以像smy说的那样“挤过去”,似乎也可反复横跳,但他没有考虑到!彼此都没注意这个问题,一票人争论,所以smy和我hack,但hack不掉。

对于ai,bi,cia_i,b_i,c_i ,bib_i,处理成一个个时间段离散化,这个dp的枚举方式是类似最短路的,找一个时间最短的看看前后两个门能不能转移,但问题就在这个开启的判定上,飞哥讲的是对于 tt 时刻当前位置与下一位置是否打开,实际上他写的是下一位置的 t+1t+1 !

但smy说我想的不对?我好像没有理解他“穿墙说”的精髓,不管了,似乎可以补出来,应该不是假题,但数据太水了。

飞扬的闸门赛高!

Day-13

T1

先手推了一会,硬推1到10,发现 O(n)O(n) 性质,理论80pts到手。

之后尝试冲击 O(logn)O(log n) 的做法,但不会,想出来一个十分唐的分块打表,考虑只有三个数即可推出其后所有数以 10610^6 为一段,最多 10310^3 段,但是挂了10pts。

正解的式子听懂了,但是对于各种推导方式没有全明白,可能是讲的问题?

感谢伟大的CTC及时指出了我的错误,我回头施工红黑名。

T2

O(n2)O(n^2) 的暴力好想,打表后不难发现对于 lxly 如果等于0,那显然是一棵连起来的树,答案为1,40pts到手。

其实说来挺唐,我把清空vis数组的操作居然放在了每一次操作最前面,本来在最后最前都可以,但是对于lx==0ly==0 的特殊性质会TLE。

正解数位dp其实对于我来说挺难想的,第一遍飞哥讲的式子都没太明白支持smy正义薄纱,后面自己画图看式子勉强明白了,改了个记忆化搜索就过了,但为什么我定义了y1还没有事?

T3

只是知道了前20pts的 O(n2)O(n^2) 做法,没太明白后面的做法。

T4

我们充分发扬人类智慧。

对于前20pts,逐个最短路的复杂度可以接受但我没写

本来针对树的情况,结果因为数据过水,多骗了35pts。

考虑到相比于 10510^5,多出来的边真的可以忽略不计,大概率连在了子树内部,也有可能连上去了也不会造成更大的贡献。

挂了40pts。

Day-12

T1

小清新数学题,主要是他够小,我能推出来性质。

我们不妨设 mod=A+B+Cmod=A+B+C 对于第一种,我们不难发现,C=2CC=2C,所以 CAB=C(A+B)=2CmodC-A-B=C-(A+B)=2C-mod, 则C=2CC=2C%mod

对于第二种,2C<S2C<S,所以C=2CC=2C%mod依然成立。

显然答案就是C×2kC \times 2^k,然后模上一个mod。

但我输出没换行啊!还我60pts!

T2

最短路也可以用于处理两点间最小的最大值。

离散化一下求前缀和优化,然后每次询问时二分一下。

不知道为什么会在某几个点上疯狂输出1。

最小生成树的做法很强,直接枚举 cic_i 好想又好做,由于 ci600 c_i \le 600 ,不会超时。

T3

紧急恶补树剖!

前30pts比较好拿,直接暴力即可,对于菊花图,由于扩散时间 T3T \le 3 直接分讨即可但我写挂了

试试用分块的做法补一补。

补出来了,题解+ST表求LCA

T4

飞哥讲的很好,贪心性质显然,暴力我也想不出来。

数据水所以人打不死?

补完T3再说。

我终于知道为什么本地没有成绩了,我没建子文件夹!!!

Day-11

晚间比赛骇人!

T1

我们不难观察到两个性质

对于若干个数 ai,ai+1,ai+2....a_i,a_{i+1},a_{i+2}.... ,aia_i 先于后面的数先进行幂运算显然比后面的数进行幂运算后再回头与 aia_i 进行幂运算优。

aiai+1ai+2a_i^{{a_{i+1}}^{a_{i+2}}} 显然比 aiai+1×ai+2a_i ^ {a_{i+1} \times a_{i+2}} 大。

对于1,最优就是将后面的数都做为1的幂次方,最后还是一。

T2

一开始想假了。

参考Kruskal的过程,每加入一条边,就是将两个不连通的块连到一起,从小到大每枚举时,我们发现,对于任意 wedgei.ww \le edge_i.w 其中 ww 不是给定边,那么加入 ww 两个端点必在已经连成的子图中。

我们设一个 sumsum 表示理论能连几条边,cntcnt 表示连上了几条边,显然 sumcntwisum-cnt \le w-i时 无解。

之后启发式合并,将小的并到大的上面即可。

T3

只会 O(n)O(n) 的15pts。

T4

数据删除

Day-10

要学树剖力。

我去年会树剖?

我TMD今年暑假学了一晚上没学会?

文化课恐怖如斯。

posted @ 2024-11-18 18:07  p7gab  阅读(0)  评论(0编辑  收藏  举报  来源