2016-C10-team2
从 Trac 迁移的文章
这是从旧校内 Wiki 迁移的文章,可能存在一些样式问题,您可以向 memset0 反馈。
原文章内容如下:
||Run ID||Time||Size||Problem||Language||Result||
||270||4:59:56||3224||D||g++0x||Wrong answer||
||269||4:54:41||2994||D||g++0x||Wrong answer||
||268||4:53:06||3008||D||g++0x||Wrong answer||
||265||4:47:53||3060||D||g++0x||Wrong answer||
||263||4:44:30||3041||D||g++0x||Wrong answer||
||239||3:41:09||872||B||gcc||OK||
||234||3:26:16||1023||E||g++0x||Wrong answer||
||232||3:20:10||722||B||gcc||Run-time error||
||230||3:11:02||711||E||g++0x||Wrong answer||
||227||3:06:41||670||E||g++0x||Wrong answer||
||207||2:12:36||823||B||gcc||Memory limit exceeded||
||198||1:33:30||1558||A||gcc||OK||
== 流水账 ==
=== TsReaper ===
今天题目比较困难,不过学长们还是尽量答对了能力范围内的题目。开场因为没看到简单题,我们就互相交流了题意,Starve学长觉得D可能比较可做,但是因为是几何题比较麻烦,决定先放一下。再看了看ranklist决定试一下ABE。一开始我们一起思考E,但是没有想出什么做法。之后Starve学长转战A,想到了大致的做法,告诉我之后我就思考A,两位学长思考B。一段时间后我想清楚了A的做法,'''A1y93'''。
学长们想了B的一个公式,但简单验证后发现不正确。hzf学长得到了一个带组合数和两个求和号的公式,我简单优化后写B,没想到交上去MLE了~~一下子没有把持住~~。出现了意料之外的问题我有点慌张,影响了队友的士气...好在Starve学长想了E的一个做法,我就和hzf学长思考B如何降低空间消耗。但Starve学长的做法貌似不正确,我和hzf学长也在滚动数组等方面出现了问题,卡得比较久。最后终于'''B1y221'''。练习结束后与其他队的学长交流发现其实有更简单的式子,应该多化简一下...最后一小时多我们思考E未果,Starve学长决定尝试D,并没有答对。
=== hzf ===
开场看F,G,H,不仅题难读,而且根本不会做...不久学长们说有队过E和B,于是我们先开始看E,看了一会儿无果...这时候starve学长发现了A的解法,和tsr学长讨论了一番,即上机写。这段时间我转战B,感觉和以前见过的概率题有点像...于是考虑了一个做法,starve学长上机帮我写了一发,结果过不了样例...进而发现公式有一部分考虑错了...期间我还怀疑过一些事件的独立性...幸而starve学长及时帮我纠正回正确的道路上...不久推出了一个正确的公式...然而硬求复杂度比较高,在优化的过程中我们遇到了预处理MLE,递推精度不行(赛后jtjl学长告诉我们分母上2的幂次可以先记下来,只在分子大于1时进行除法,同时分母的幂次如果大于某个数则令答案为0,而非将全部除法立刻进行,这样就能防止精度丢失导致答案始终0),滚动数组初始化错误等问题,卡了非常久...赛后发现了学长们的递推式非常简洁,今后在无法找到简介的表达式解,可以尝试递推式解。
之后大家开始想E,基本没思路...最后starve学长决定写D,思路很正确,可惜最后没能调试出来...有一部分是我的锅...B占用太长时间..
== 总结 ==
=== TsReaper ===
* 对各种问题应该都有一个准备,今天第一次碰到MLE比较慌乱...
* 今天做出了百度之星~~yandex之星~~复赛的效果,对比较困难的比赛实力还不行。
=== hzf ===
* 学习避免精度丢失的方法...
* 滚动数组需要注意初始化
* 在找不到简洁的closed-form时应该考虑递推
=== 3z ===
* 模板不可信啊。。在抄模板的时候要加上自己的思考啊。。
* 暴露了实力,真正难题的时候并不能帮上队友什么忙
* 要大胆猜测
== 题解 ==
=== E - Game ===
有一个比较重要的结论:一个数整除很多数,最后得到的结果与整除的顺序无关。所以我们枚举使用哪些卡片,把这些卡片上的数乘起来排个序,就把L~R分成了很多个区间。对于同一区间内的两个数A,B,由于它们的sg函数转移图是相同的,所以A和B要么全部先手必胜,要么全部先手必败。
可以简单地反证一下。如果A和B的sg函数转移图相同,那么对于每一套恰好把A变成0的卡片,也要恰好把B变成0. 如果有一套卡片可以把A变成0,但是不能把B变成0,则这一套卡片的乘积位于A和B之间,这样A和B就会被分开,不可能在同一区间里了。
== 补题 ==
=== TsReaper ===
C, ~~E~~, F, H
=== hzf ===
~~E~~
| Run ID | Time | Size | Problem | Language | Result |
| 270 | 4:59:56 | 3224 | D | g++0x | Wrong answer |
| 269 | 4:54:41 | 2994 | D | g++0x | Wrong answer |
| 268 | 4:53:06 | 3008 | D | g++0x | Wrong answer |
| 265 | 4:47:53 | 3060 | D | g++0x | Wrong answer |
| 263 | 4:44:30 | 3041 | D | g++0x | Wrong answer |
| 239 | 3:41:09 | 872 | B | gcc | OK |
| 234 | 3:26:16 | 1023 | E | g++0x | Wrong answer |
| 232 | 3:20:10 | 722 | B | gcc | Run-time error |
| 230 | 3:11:02 | 711 | E | g++0x | Wrong answer |
| 227 | 3:06:41 | 670 | E | g++0x | Wrong answer |
| 207 | 2:12:36 | 823 | B | gcc | Memory limit exceeded |
| 198 | 1:33:30 | 1558 | A | gcc | OK |
流水账
TsReaper
今天题目比较困难,不过学长们还是尽量答对了能力范围内的题目。开场因为没看到简单题,我们就互相交流了题意,Starve学长觉得D可能比较可做,但是因为是几何题比较麻烦,决定先放一下。再看了看ranklist决定试一下ABE。一开始我们一起思考E,但是没有想出什么做法。之后Starve学长转战A,想到了大致的做法,告诉我之后我就思考A,两位学长思考B。一段时间后我想清楚了A的做法,A1y93。
学长们想了B的一个公式,但简单验证后发现不正确。hzf学长得到了一个带组合数和两个求和号的公式,我简单优化后写B,没想到交上去MLE了一下子没有把持住。出现了意料之外的问题我有点慌张,影响了队友的士气...好在Starve学长想了E的一个做法,我就和hzf学长思考B如何降低空间消耗。但Starve学长的做法貌似不正确,我和hzf学长也在滚动数组等方面出现了问题,卡得比较久。最后终于B1y221。练习结束后与其他队的学长交流发现其实有更简单的式子,应该多化简一下...最后一小时多我们思考E未果,Starve学长决定尝试D,并没有答对。
hzf
开场看F,G,H,不仅题难读,而且根本不会做...不久学长们说有队过E和B,于是我们先开始看E,看了一会儿无果...这时候starve学长发现了A的解法,和tsr学长讨论了一番,即上机写。这段时间我转战B,感觉和以前见过的概率题有点像...于是考虑了一个做法,starve学长上机帮我写了一发,结果过不了样例...进而发现公式有一部分考虑错了...期间我还怀疑过一些事件的独立性...幸而starve学长及时帮我纠正回正确的道路上...不久推出了一个正确的公式...然而硬求复杂度比较高,在优化的过程中我们遇到了预处理MLE,递推精度不行(赛后jtjl学长告诉我们分母上2的幂次可以先记下来,只在分子大于1时进行除法,同时分母的幂次如果大于某个数则令答案为0,而非将全部除法立刻进行,这样就能防止精度丢失导致答案始终0),滚动数组初始化错误等问题,卡了非常久...赛后发现了学长们的递推式非常简洁,今后在无法找到简介的表达式解,可以尝试递推式解。
之后大家开始想E,基本没思路...最后starve学长决定写D,思路很正确,可惜最后没能调试出来...有一部分是我的锅...B占用太长时间..
总结
TsReaper
- 对各种问题应该都有一个准备,今天第一次碰到MLE比较慌乱...
- 今天做出了百度之星
yandex之星复赛的效果,对比较困难的比赛实力还不行。
hzf
- 学习避免精度丢失的方法...
- 滚动数组需要注意初始化
- 在找不到简洁的closed-form时应该考虑递推
3z
- 模板不可信啊。。在抄模板的时候要加上自己的思考啊。。
- 暴露了实力,真正难题的时候并不能帮上队友什么忙
- 要大胆猜测
题解
E - Game
有一个比较重要的结论:一个数整除很多数,最后得到的结果与整除的顺序无关。所以我们枚举使用哪些卡片,把这些卡片上的数乘起来排个序,就把L~R分成了很多个区间。对于同一区间内的两个数A,B,由于它们的sg函数转移图是相同的,所以A和B要么全部先手必胜,要么全部先手必败。
可以简单地反证一下。如果A和B的sg函数转移图相同,那么对于每一套恰好把A变成0的卡片,也要恰好把B变成0. 如果有一套卡片可以把A变成0,但是不能把B变成0,则这一套卡片的乘积位于A和B之间,这样A和B就会被分开,不可能在同一区间里了。
补题
TsReaper
C, E, F, H
hzf
E
附加文件
- 2016-C10-team2.zip by TsReaper
- E.cpp by TsReaper
- d.cpp by 3ZStarve