2021-team06-C210816

从 Trac 迁移的文章

这是从旧校内 Wiki 迁移的文章,可能存在一些样式问题,您可以向 memset0 反馈。

原文章内容如下:

[/wiki/2021-team6 返回]

== Ranklist ==

[[Image(210816-standing.png,800px)]]

== submission ==

[[Image(210816-submission.png,800px)]]


== 概述 ==

solved: 8/13  dirt: 50%

rank: 4



==  ==

== 总结 ==

题目对上胃口外加某人的场外信息就有了运气比较顺的这一场双打。
不过前期也不错,虽然有些dirt,但至少都自己面对代码找出了错误。 继续保持吧


== 题解 ==

A: 建01字典树,用map<ll,ll> solve(ll now, ll nowbit)存储now节点所有数的匹配,转移时遍历两边,根据题目性质每一个1的匹配必定有一个0的匹配是相同的,然后两对匹配各安排一个高位即可。

B: 很难写的一个几何,待补。

C: 判断原图是否连通,然后二分正方形边长即可,lxy坐标转换出错一次。。

D:签到

E:先转化成偶字符串(如果奇数且中间是?就答案×26),然后dp[i]表示从中间往左右延伸i格的方案数。转移时枚举考虑的字符串的中线离中间的距离,然后分别讨论两对字符串是奇还是偶,每次同时往左右延伸比较字符并进行转移。

F:签到,考虑二分最大长度,暴力check.lxy未考虑严格递增递减罚时一发。

G:待补

H:待补

I:待补

J:设f[i][j]表示dp了i位,以字符j结尾的最小花费,只dp前半串,注意加上反过来的后半串的花费,直接dp即可

K:重点在于,这种有两个棋子并且要防重叠的情形也是可以在讨论一些边界情形后拆分二维考虑的。

考虑如果两个棋子在同一行且有间隔,先手一步把间隔顶满,则后手只能被步步逼退到角落。因此考虑记sg[i][j]表示两个棋子分别在第i列和第j列时的sg值,相差一列以内是必败态(把行玩完以后就动不了了),其他做普通的sg函数转移(枚举后继状态,取mex)

合并时,判掉相贴和共一个角两个情况以后只要考虑两行的sg和两列的sg即可。

L:跑一边最短路然后更新每个节点的最短路和最短路条数即可。

M:签到,模拟即可。

[/wiki/2021-team6 返回]

Ranklist

submission

概述

solved: 8/13 dirt: 50%

rank: 4

总结

题目对上胃口外加某人的场外信息就有了运气比较顺的这一场双打。

不过前期也不错,虽然有些dirt,但至少都自己面对代码找出了错误。 继续保持吧

题解

A: 建01字典树,用map solve(ll now, ll nowbit)存储now节点所有数的匹配,转移时遍历两边,根据题目性质每一个1的匹配必定有一个0的匹配是相同的,然后两对匹配各安排一个高位即可。

B: 很难写的一个几何,待补。

C: 判断原图是否连通,然后二分正方形边长即可,lxy坐标转换出错一次。。

D:签到

E:先转化成偶字符串(如果奇数且中间是?就答案×26),然后dp[i]表示从中间往左右延伸i格的方案数。转移时枚举考虑的字符串的中线离中间的距离,然后分别讨论两对字符串是奇还是偶,每次同时往左右延伸比较字符并进行转移。

F:签到,考虑二分最大长度,暴力check.lxy未考虑严格递增递减罚时一发。

G:待补

H:待补

I:待补

J:设f[i][j]表示dp了i位,以字符j结尾的最小花费,只dp前半串,注意加上反过来的后半串的花费,直接dp即可

K:重点在于,这种有两个棋子并且要防重叠的情形也是可以在讨论一些边界情形后拆分二维考虑的。

考虑如果两个棋子在同一行且有间隔,先手一步把间隔顶满,则后手只能被步步逼退到角落。因此考虑记sg[i][j]表示两个棋子分别在第i列和第j列时的sg值,相差一列以内是必败态(把行玩完以后就动不了了),其他做普通的sg函数转移(枚举后继状态,取mex)

合并时,判掉相贴和共一个角两个情况以后只要考虑两行的sg和两列的sg即可。

L:跑一边最短路然后更新每个节点的最短路和最短路条数即可。

M:签到,模拟即可。

附加文件