2/9考试总结

时间安排

7:30–7:50 读题,T1貌似需要建图,T2 dp ,T3 神秘博弈。
7:50–8:40 T1,首先可以建图,然后可以发现许多优秀性质,发现题目要求实际上是在每棵树上选一条价值最大的链。问题在于如何取最大,一个想法是 dp ,但是这道题值域非常大显然不是这个方向,考虑到每单位的价值关于编号数指数级增长,考虑贪心选编号大的。手捏了几个例子发现没什么问题。但是细节貌似很多,还不是很清楚,先写后面的。
8:40–9:00 T3,对于 m=1 的点就是经典 nim ,可以 fwt 快速计算。然后感觉其他点都不太可做,就先弃了。
9:00–10:00 T2,首先有状压的分数。然后发现保留的数具有划分关系,可以区间 dp ,写完发现是 n^5 的,不太好优化。
10:00–11:40 T1,仔细想了想细节,要打好多标记,以及一些操作和贪心的点。实现完后反复检查了几遍。捏了几个数据都能跑过。
11:40–12:00 回看T2考虑怎么优化。

回顾反思

T1:
思路几乎是正确的,因为少考虑了一种情况导致挂了好多分。
花的时间有点长,当然有相当一部分是在想细节和枚举各种边界情况,效率应该更高些,留出更多的时间用于打磨数据和对拍。

T2:
比赛的时候光顾着怎么优化了,想着能不能把系数拆开什么的,忽略了一些更可写的点,正解则是直接找性质并更换了 dp 状态。

暴力 dp 考虑枚举 l,r,x 表示区间 [l,r] 内获胜的人为 x ,那么可以暴力枚举分界点以及两边获胜的人数转移。这是 n^5 的。
一个优化是若 x 在区间中间,那么其两边互不影响,于是可以直接用 d p l , x , x dp_{l,x,x} dpl,x,x d p x , r , x dp_{x,r,x} dpx,r,x O(1) 转移了,那么需要高复杂度转移的对于一个区间只有 O(1) 个。于是变成了 n^4 。
复杂度在于对于两个留下来的选手 x,y ,需要考虑将 x,y 分开的一个分界点,考虑在 dp 中直接处理处相应所有分界点的答案和,于是可以改变 dp 状态,设 d p l , r , 0 / 1 / 2 dp_{l,r,0/1/2} dpl,r,0/1/2 表示一个区间 [l,r] 内左端点/右端点/两端点都存活下来的方案数,那么对于 x,y 其之间的贡献就是 d p x , y , 2 dp_{x,y,2} dpx,y,2 ,就可以快速转移了。

T3:
题意给出 n 堆石子,每堆有 ai 个石子,颜色为 ci,每轮要么选择一堆选取若干个,要么选择某种颜色的若干堆选取至多 m 个,不能不取,求先手必胜的情况数。考虑其 SG 。
发现每种颜色可以分别求 SG ,最后 xor 起来即可。
设某种颜色有 n 堆,第 i 堆有 ai 个,且 a i = b i ⋅ ( m + 1 ) + c i ( 0 ≤ c i ≤ m ) a_i=b_i\cdot (m+1)+c_i (0\leq c_i \leq m) ai=bi(m+1)+ci(0cim)
那么其 SG 值为 :
( ⨁ 1 ≤ i ≤ n b i ) ⋅ ( m + 1 ) + ( ( ∑ 1 ≤ i ≤ n c i ) m o d    ( m + 1 ) ) (\bigoplus_{1\leq i\leq n}b_i)\cdot (m+1)+((\sum_{1\leq i\leq n}c_i)\mod (m+1)) (1inbi)(m+1)+((1inci)mod(m+1))
感性理解的话,可以发现该题实际上是 nim 游戏bash 博弈 的缝合。
群友给出了一下貌似更严谨也不知道对不对的证明:

可以做一些博弈的题目找一找分析 SG 和博弈策略之类的感觉。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值