0116模拟赛总结

文章描述了作者在一次算法竞赛中的时间分配和解题思路。对于T1问题,通过枚举最大公约数和动态规划解决;T2问题利用翻棋子游戏的异或性质和打表找到解决方案;T3问题则通过拓扑序和暴力枚举结合前缀和优化解决。
摘要由CSDN通过智能技术生成

时间安排

8:20–9:20 T1 50 分部分分可以直接 n^2 DP ,T3 的 40 分可以直接状压。T1貌似可以拿 70 。
9:20–9:30 看了一眼 T2 ,暂时没想法。暴力分直观上很难写而且只有 10 分,先写 T1 的70 .
9:30–? T1的70 ,由于都是2 的幂,可以直接枚举最大公约数,然后分别 dp ,细节一堆。有个显然的性质是,固定一个端点后,区间 gcd 最多变化log次,可以划分为 log 个段。考虑包含一个数的段,那么要维护一堆前缀和,如果能够用动态开店线段树维护,最多大概有 nlog - nlog^2 个结点,但是维护这log个段貌似有些困难。
?-13:00 T3,发现如果枚举一对逆序对,相当于增加了一条拓扑关系,可以每次计数累加。但这样是个仙人掌计数,以前貌似遇到类似的,这样大概有 80 分左右,尝试去写,然后 fail 了。

回顾反思

T1:这道题一个简化的关键点是把考虑包含某个点的段变成有多少种情况不包含,这样就由考虑一个区间变成只考虑某个点两边的前后缀了,前后缀是好做的。其次是观察 dp 过程的性质,发现那 log 段不仅是 gcd 相同,其 dp 值也是相同的,于是离散化出这些段,只有 log 级别,直接对这些段做就可以了。
T2:
经典的翻棋子游戏,有两个结论:
1.我们可以把⼀个局⾯看成若⼲个独⽴的游戏,每个游戏中只有⼀个棋⼦是⽩⾊的,我们设这类局⾯叫 W ( x ) W(x) W(x) ,其中 x x x是⽩⾊的棋⼦。
2.当我们把 x x x的颜⾊翻转时,可以视为新加了⼀个 W ( x ) W(x) W(x),因为颜⾊翻转其实是把颜⾊异或上 1 1 1,⽽两个 W ( x ) W(x) W(x)会抵消,符合异或的性质。
于是这样游戏的 SG 值就是每个要翻的白色点 SG 值的 xor 。
其次是要打表找到规律,发现在该题中 SG(W(x))=lowbit(max(i,j)) 。
这种题还是要多尝试打打表。
T3
考虑拓扑序逆序对,其与一个数的位置和本身大小有关,那么在本题中 N 只有 500 的情况下,可以暴力加入状态中,设 d p x , p o s , w dp_{x,pos,w} dpx,pos,w 表示 x 的子树中,值为 w 的点在第 pos 个位置,dp 的时候暴力枚举转移,通过前缀和以及背包经典优化结论优化就行了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值