开始的结束与结束的开始。
据说微软2016编程之美(http://studentclub.msra.cn/bop2016/,报名截止4月23日)初赛将会使用 Code Hunt 平台进行。于是我花了两天的时间试了一下。
网上有人说需要翻墙。但之前使用教育网访问是没有问题的,不过建议使用 Chrome 浏览器,IE略卡。
TOC
Zone: BOP 2016 Test
题型比较基础,但入手比较费时间。顺带一提,LINQ大法好。
Zone: Pex4Fun
题型有一些难度。每个 Sector 前期倾向于把简单的事情搞复杂;后期算是拼死拼话凑出了想要的结果,然而 Skill Rating 却没有满……略纠结。
做了两天的 Sector 2,累到半死,终于解锁 Sector 3。至于每个 Sector 都有一道题没做出来……好吧,我快不行了……
更新:又做出来了两道题。现在只剩下 01.01 和 02.13 了。
PEX4FUN 01.01
这是一道有数论背景的题。
Can you figure out solve this Collatz conjecture based problem? http://www.numbertheory.org/php/collatz.html
测试用例如下所示
X | Y |
---|---|
1 | 1 |
2 | 2 |
3 | 8 |
4 | 3 |
6 | 9 |
7 | 17 |
10 | 7 |
11 | 15 |
19 | 21 |
38 | 22 |
211 | 40 |
表示一脸懵逼。
PEX4FUN 02.13
这是一道字符串处理的题目。然而直到现在我都不知道题目对可怜的字符串做了什么……
Sector 3 的难度有一些不可思议。
顺带一提, LINQ 大法好。
Zone: Code Hunt
其实最初看到题量之后,我觉得我只能在 Pex4Fun 和 Code Hunt 之间选一个了。
于是我选择了 PXE4FUN 。不知道这个选择是否明智,但我在这个区还是可以冠单的——至少现在(2016-4-20 PM 8:30 BJT)如此 😉
相比之下, Code Hunt 区的竞争似乎就有点白热化了……
PEX的某些已知限制
今年的项目只有codehunt,各位oi/acm选手准备好被都是bug的平台玩奶子吧 [1]
然而我并没有参加过ACM。所以本周末的初赛还是……我开心就好吧。
总之,我发现了
- 部分类型无法使用,包括 `Tuple<T1, T2, …>`;
- `Enumerable.OrderBy` 无法使用。不过可以使用 `Array.Sort`,效果还好;
- 如果可以,尽量避免浮点运算和与`Math`开方运算;
- 字符串处理,为了使代码简洁,可以考虑使用正则表达式。然而,想出一个合适的正则表达式不是很容易;
- 以及,PEX现在对浮点数输入/输出的测试支持不是很好。因此,所有的 `Puzzle` 的签名可能都不会包含 double 参数。
- Code Hunt 是2014年出来的(然而为什么 PEX4FUN 区总有一种今年才开的感觉),所以不知道今年平台会不会有更新。
最后,重要的话说三遍。
using System; using System.Linq; // LINQ大法好。
最最后,拿什么来拯救你,我的工程优化和随机过程……
另请参阅
- Reddit上去年关于 Code Hunt 的讨论: https://www.reddit.com/r/programming/comments/2npiu4/code_hunt_a_programming_game/