Google的Competitions with Google上有三个类型的练习:
- Hash Code: 应该是一个组队编程训练,看起来比较偏工程向,介绍中说可以选择队伍与编程语言来完成一个engineering problem,还问了一句Are u up for the challenge?
Of course I am not.- Code Jam:
编程果酱??反正就是用多轮的算法问题来进行比赛,最后获胜者还有奖金,又问了一句Do u have what it takes?emmmm..- Kick Start: 今天的重头戏,介绍中说主要是磨炼自己的coding水平,受众是学生
我和新接触编程的人我,也是按轮次进行的,可以只参加一轮也可以全部参加,最后的问题是What are u waiting for? 这看起来就正常多了,不像是向一个算法渣挑衅的言论,给好评。Kick Start的轮次是一个Practice Round和A~H八轮,其中除了Practice Round给了24h解题外,其它的八个轮次都是只给3h解题时间,所以介绍中所说的’可以只参加一轮’,实则是指哪一轮呢?
别问,问就是自闭。
Quick-Start Guide
在开始解题之前,还要学习怎么使用Kick Start平台。本来不想写这部分的,后来粗粗看了看,发现解题形式和我之前常用的POJ或Leetcode 其实我不常用,但是常用一词会显得我在这方面非常qualified 差别还是不小的,所以来这里整理一下:
- 如果想参加的是比赛,要在contest’s home page(当然还要在比赛举行时间)进行解题,如果是练习就滚去Past Problems,选择自己想自闭的轮次
- 要注意limits模块中的内容,因为很多时候不是WA,而是TLE,就像最难过的事情不是我不行,而是我本可以。
- 下载问题文件之后,需要生成result文件并提交。在practice中只需要提交result文件,在competition中还需要提交code文件。提交结果有三种:
A. Correct
B. Rejected:就是提交被并非对错的原因被否决了,比如传错了文件
C. Incorrect:回答错误 - 比较有意思的是,Kick Start中的设定是,先写自己的程序,写完觉得没问题了点击下载数据集,一开始只能下载Small规模的数据集,从下载后开始计时,小问题是4分钟,解答正确后才能下载大数据集,大问题是8分钟。需要在指定时间内提交答案,如果提交答案正确,结束计时;如果提交Rejected,计时会继续走,还能继续提交;如果提交答案错误,会被计一次罚时,值得注意的是,如果计时结束也没有提交或者还是Rejected,也会自动判为Incorrect,此时已经没有提交机会了。
- 大数据集评分只有在比赛结束后才能看到,也就是说,提交之后是看不到自己的结果的。对于大数据集,只会judge最后一次上传的结果,可以在8分钟限时内反复提交。
- 当然,以上所有的限制在Practice mode下不会生效,这是给自闭儿童的一大福利。
关于读取input.file并输出output.file
对于C++
在solution.cpp中编写解决问题的代码,输入输出使用cin与cout即可,在编译时使用以下命令:
1 | g++ solution.cpp -o solution./solution < input_file.txt > output_file.txt |
第一步是为了生成名为solution的可执行文件,当然如果嫌麻烦直接省去-o参数,直接生成a.out也行。
第二步是运行这个可执行文件,并指定输入文件名为input_file.txt,输出到output_file.txt中。
对于Python
使用raw_input()函数读取,使用print输出以及format方法控制格式即可。在执行时输入以下指令:
1 | python2 solution.py input_file.txt output_file.txt |
Python的执行语句就非常的简单粗暴了。通过以上的例子可以发现,实际编写代码时和平时其它平台上的输入输出相比几乎没有区别,只是在执行代码时添加了条件。