CSP-S 2019 参赛记 November 17, 2019 这次 ~~NOIP~~ CSP,借着教育部打压竞赛的~~良机~~,我得以有幸在退役后作为社会人士参加。 ### 初赛 系统崩了半小时,比较毒瘤。 ### Day 0 人工智能入土的 midterm survey 的 ddl 在临近截止时终于水完了。 ### Day 1 傻逼监考,不让带水、食物、卫生纸。开始时低估了难度(高估了自己的水平),不慌不忙的打板子。然后瞬间过 T1。然后很快过 T2。T3 一开始想偏了若干方向。最后到离结束 2 min 时才过大样例,于是三道题都没对拍。 后来发现 T3 没判 $$n=1$$。 预计得分 200~300。 ### Day 2 ~~这里隐藏了一句话,请 F12 查看~~ T1 花了半小时才打完。然后 T2 花了 1h 搞到了大概是正解,但是过不了大样例。又花了若干时间查错,还是没过大样例。还有约 1.3 h 时开始写 T3。想了个傻逼点分做法,最后勉强写完,调了十多分钟,没调出来,就直接交了。 预计得分 100~200。 ### 总结 退役选手降智严重。成功成为我 ~~NOIP 提高组~~ 分数最低的一次。不过划水也挺有意思的。 ### UPD 最终得分 488。
把 0~2^n-1 划分为若干组使得每组异或和为 0 November 6, 2019 把 $$0$$~$$2^n-1$$ $$(n\ge 2)$$ 划分为若干组使得每组异或和为 0,最多分出多少组? 显然组数的上界是 $$\lceil\frac{n}{3}\rceil$$。 可以递归构造: ```python def gen(n): if n==2: return [(0,),(1,2,3)] if n==3: return [(0,),(1,2,3),(4,5,6,7)] s=gen(n-2) res=[(0,),(1,2,3)] for i in s: if len(i)==3: key=[0,2,3,1] for j in range(4): res.append((i[0]<<2|j,i[1]<<2|key[j],i[2]<<2|key[key[j]])) elif len(i)==4: t=2**(n-1) res.append((t,t+1,t+2,t+3)) res.append((4,t+9,t+13)) res.append((5,t+11,t+14)) res.append((8,t+7,t+15)) res.append((10,t+6,t+12)) res.append((12,t+4,t+8)) res.append((15,t+5,t+10)) if ~n&1: return res res2=[] for i in res: if set(i)!={4,8,12} and set(i)!={5,10,15}: res2.append(i) return res2 ```