复赛FAQ
问:MAX_LINE_LEN不够用怎么办?
答:请参考此贴:http://bbs.csdn.net/topics/391945538。官方在复赛中,会在后台将编译包中的MAX_LINE_LEN定义长度修改为12000,可以容纳最多1999条边的结果输出。
问:用例中的必经顶点列表可以为空吗?
答:可以,请参见题目的描述:”DemandID里面第一行为1,第二行为2,表示路径索引,1表示P’,2表示P’’,SourceID为起始顶点s的索引,DestinationID为终止顶点t的索引,IncludingSet表示必须经过的顶点集合V’或V’’,其中不同的顶点索引之间用“ | ”分割,如果该路径没有必经顶点要求,则此处输入NA。“
初赛是我们出的用例,必经顶点为空的情况(实际业务中可能出现)没有出现,是为了保证比赛的难度。就像赛题里头有说用例可能无解(实际业务中可能出现),但是实际上初赛用例都是可以有解的。但是复赛有选手自设计用例,这一点无法保证。选手写代码时需要注意这一点。
复赛仍然禁止无解的情况出现,因为无解的情况主要看谁算得快,而判断无解很容易作弊,会导致对战环节失去意义。
问:规则中未涉及的是不是就是合法的
答:总体来说,规则没讲的都是允许的。当然,还要加一句大家很痛恨,我也很痛恨,但是事实就是这么蛋疼的一句话,”官方保留最终解释权“。
问:复赛是否允许使用开源库、商用库?
答:复赛和决赛阶段,核心算法只能使用自己写的代码,可以参考别人的实现,但是应该给出来源信息。使用STL库等不涉及核心算法的通用工具类库不受限制。
问:复赛的机器配置是什么样的?
答:跟初赛一样,还是单核的
问:复赛试题中路径重合度的现实意义是什么?
答:边对应着网络中光纤、网线的概念,在网络中,如果一根线断了(如道路施工时挖断),需要将业务切换到另外一条备用路径上。因此,主备路径重合的边越少,则网络的整体可靠性越高。
问:是否可以构造不合法的用例,让对手算不出来而失败?
答:不可以。要求所有的用例都是合法的(符合题目描述即为合法)。对未能通过用例合法性检查的,会被判定本对战局失败。双方都算不出有效解的,也会判出题方失败。
在选手上传用例时,服务器会进行用例合法性检查。
问:什么叫做”使用一套核心算法和代码“解题?
答:制定这个规则的初衷是为了避免选手的程序对于自己设计的用例”特意“优化,以至于出题人的程序优势过大。不符合”使用同一套算法和代码“的行为包括:
1、对于不同的用例,使用不同的算法处理
2、程序中,使用用例的某些特征值进行特殊处理,如识别到为自己出的用例,而进行特别的处理
3、针对不同的用例,预先设定不同的参数(如遗传算法中的参数);
补充不属于作弊的例外情况:
1、遗传算法中的代数有时需要根据规模调整,这个属于正常的算法行为。