2016-C12-team2
从 Trac 迁移的文章
这是从旧校内 Wiki 迁移的文章,可能存在一些样式问题,您可以向 memset0 反馈。
原文章内容如下:
||Run ID||Time||Size||Problem||Language||Result||
||255||4:59:32||4270||I||g++0x-32||Wrong answer||
||254||4:54:13||4225||I||g++0x-32||Wrong answer||
||252||4:51:58||4216||I||g++0x-32||Wrong answer||
||247||4:47:54||4175||I||g++0x-32||Wrong answer||
||225||3:58:53||2822||B||g++0x-32||OK||
||223||3:57:19||2824||B||g++0x-32||Memory limit exceeded||
||222||3:55:29||2823||B||g++||Compilation error||
||215||3:38:00||573||A||g++||OK||
||187||2:15:13||2210||F||g++0x-32||OK||
||162||0:36:41||1145||G||gcc||OK||
== 流水账 ==
=== TsReaper ===
今天是比较困难的yandex cup,学长们和上次相比有进步。开场经过交流我们确定了相对简单的G题做法,'''G1y36'''。Starve学长也大致想到了F的做法,我与hzf学长也估计到了B的状态不会很多,可能是搜索。我就继续上机先写搜索,两位学长分别推自己题目的公式。然而B题有点难写...好在Starve学长得到了F的公式,上机后'''F1y135'''。之后hzf学长虽然走了一点弯路,也找到了A的正确做法,'''A1y218'''。在学长们想题期间我一直在写搜索好菜,还自带MLE体质内存超了一波,最后'''B3y238'''。Starve学长也知道了I的做法,可惜最后没有调出来。
== 总结 ==
=== TsReaper ===
* 今天J是折半搜索+检查。以前只见过折半搜索在纯搜索中的应用,感觉是一个新姿势...
=== hzf ===
* ploya引理不能处理类似于平移这样引入不合法状态的变换
== 题解 ==
=== B - Best Strategy ===
虽然状态看起来很多,然而每次可以选择的牌最多只有7张,而且还会随着游戏的进行数量不断缩小,所以总体状态数不会很大。可以用暴力的搜索来做。写深搜会比广搜方便,记得要记忆化。
=== G - Version Control System ===
用并查集维护哪些位置的字符要一致即可。如果共有x个集合,显然答案是1*2^(4x)。
=== J - Jeopardy ===
用折半搜索的思想。分别把前半部分能构成的所有矩形和后半部分能构成的所有矩形都做出来,每一半是3^10^。之后把前半部分的矩形按X值从小到大排序,后半部分的矩形按X值从大到小排序,像做二维偏序问题一样用树状数组维护最小值即可。普通的线段树会TLE,zkw不会TLE,很强。
== 补题 ==
== TsReaper ==
D, E, I, ~~J~~
=== 3z ===
~~I~~
=== hzf ===
~~J~~
| Run ID | Time | Size | Problem | Language | Result |
| 255 | 4:59:32 | 4270 | I | g++0x-32 | Wrong answer |
| 254 | 4:54:13 | 4225 | I | g++0x-32 | Wrong answer |
| 252 | 4:51:58 | 4216 | I | g++0x-32 | Wrong answer |
| 247 | 4:47:54 | 4175 | I | g++0x-32 | Wrong answer |
| 225 | 3:58:53 | 2822 | B | g++0x-32 | OK |
| 223 | 3:57:19 | 2824 | B | g++0x-32 | Memory limit exceeded |
| 222 | 3:55:29 | 2823 | B | g++ | Compilation error |
| 215 | 3:38:00 | 573 | A | g++ | OK |
| 187 | 2:15:13 | 2210 | F | g++0x-32 | OK |
| 162 | 0:36:41 | 1145 | G | gcc | OK |
流水账
TsReaper
今天是比较困难的yandex cup,学长们和上次相比有进步。开场经过交流我们确定了相对简单的G题做法,G1y36。Starve学长也大致想到了F的做法,我与hzf学长也估计到了B的状态不会很多,可能是搜索。我就继续上机先写搜索,两位学长分别推自己题目的公式。然而B题有点难写...好在Starve学长得到了F的公式,上机后F1y135。之后hzf学长虽然走了一点弯路,也找到了A的正确做法,A1y218。在学长们想题期间我一直在写搜索好菜,还自带MLE体质内存超了一波,最后B3y238。Starve学长也知道了I的做法,可惜最后没有调出来。
总结
TsReaper
- 今天J是折半搜索+检查。以前只见过折半搜索在纯搜索中的应用,感觉是一个新姿势...
hzf
- ploya引理不能处理类似于平移这样引入不合法状态的变换
题解
B - Best Strategy
虽然状态看起来很多,然而每次可以选择的牌最多只有7张,而且还会随着游戏的进行数量不断缩小,所以总体状态数不会很大。可以用暴力的搜索来做。写深搜会比广搜方便,记得要记忆化。
G - Version Control System
用并查集维护哪些位置的字符要一致即可。如果共有x个集合,显然答案是1*2^(4x)。
J - Jeopardy
用折半搜索的思想。分别把前半部分能构成的所有矩形和后半部分能构成的所有矩形都做出来,每一半是310。之后把前半部分的矩形按X值从小到大排序,后半部分的矩形按X值从大到小排序,像做二维偏序问题一样用树状数组维护最小值即可。普通的线段树会TLE,zkw不会TLE,很强。
补题
TsReaper
D, E, I, J
3z
I
hzf
J
附加文件
- i.cpp by 3ZStarve
- J.cpp by TsReaper
- 2016-C12-team2.zip by TsReaper