BIT training long round #3 summary

BIT 校赛 5h 场第三场总结

选自 2024 icpc 昆明站,还是自己人出的题,是真狠啊。

  • solved 6/13, rk 4

历程

刚开始来看,A-E,一个都不会,开场就破防。

后面有人过了 M,随便写了一个,挂了。最后发现我这个思路是对的,加个特判就行了。

后面开 J ,最开始猜的 Alice 先手第一步不赢就必输,很显然是寄的。手玩了一下 \(3,1,2\) 这种 Bob 先手情况下 Alice 是可以赢,大概 \(n=3\) 有两种这个情况,但加特判就是过不去,最后改成了 Bob 必须选择一个不会使错排数等于 \(2\)\(0\) 的方案。

H ,极角真不好求,其实 atan2 就能直接把极角求出来...

L 做了 2 小时,我也干了。

G 猜了下 \(a\) 这么小,方案数肯定不会很大,大概是 \(\log\) 级别,写了个暴力,给过了。

G 写完就破防了,剩下的一道不会,开摆去了。后面想想这不行,得拿一道,就去看 E,考场想法是先求出 \(k\) 得情况,再导出 \(k-1\) 的情况,类推出 \(k=2\) 的情况,再特判出每个点的值,后面越想越复杂,放了。

C 过的多,就看 C,正推不行就逆推,\(k\) 很大的时候也能直接数论分块,但实现上出了挺多问题,还是送了 2 发。

最终,简单题 4 道全过,普通题过 2 道,难题 0 道。

部分题解

后面会慢慢补上。

C - Coin

考虑逆着推,最终编号 \(1\) 这个人赢了,维护这个人前面有多少人,可以发现一轮过后,前面的人数 \(n\) 会变成 \(n+\lfloor\frac{n}{k-1}\rfloor +1\),知道总轮数就可以模拟这个过程。

总轮数,每轮后 \(n=n-\lceil\frac{n}{k}\rceil\),在 \(k\) 很小的时候可以模拟,\(k\) 较大的时候 \(\frac{n}{k}\) 的最大值很小,可以数论分块。

最后是逆推的过程,轮数很少的时候直接模拟,轮数很大的时候还是可以数论分块,此时 \(k\) 也很大。

E - Extracting Weights

求出 \(n\) 个线性无关的方程组就能解出最终答案,判断线性无关用 bitset 维护线性基即可。

注意 \(w_0=0\) 这个方程也要插入线性基,可能存在若干方程能解出 \(w_0=0\) ,这时 \(w_0=0\) 和之前找的方程线性相关。

posted @ 2025-02-19 01:12  蒻蒻虫  阅读(27)  评论(0)    收藏  举报