专栏文章
题解:P9324 [EGOI 2022] Chika Wants to Cheat / 出老千
P9324题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @mion90kf
- 此快照首次捕获于
- 2025/12/02 21:58 3 个月前
- 此快照最后确认于
- 2025/12/02 21:58 3 个月前
简要题意:
构造 种不同的在 网格中绘制线段的方式,使得在旋转后仍然能够识别,其中线段的端点必须在整点上,并且除端点外不能经过其他整点。
注意这里的 网格是有 个整点的。
先不考虑旋转。可以算出共有 条不同的线段可以给我们画。那么可能的状态数就有 种。
现在考虑旋转,发现 ,并且刚好可以把 条线段分成 组,每组里有 条线段,且组内的线段可以通过旋转获得。我们把一个状态压成一个 bits 的整数 ,每组线段压在相邻的 bit 里。
这样我们就可以用位运算快速算出一个状态 旋转 度后的状态 。
然后我们找出前 个满足以下条件的 塞进一个 vector 内:
小于等于 旋转若干次后的状态 ,即 。(最小表示法)
构建图形时查表查出第 个这样的 。
查询图形时先变为最小表示,在 vector 中二分,这样就可以通过。
实测第 小的 为 。
时间复杂度 。
其中 ,预处理部分常数很小,本地只需 0.5s,时限 2s 随便过。
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...