2016CCPC网络赛个人总结

今天下午是2016年的CCPC中国大学生程序设计竞赛的网络赛。几百个学校共计一千多个队参赛。在HDOJ举行。12点开始以后,我们马上看了第一题,嘻嘻哈哈两个星球有着不同的公转周期。给出一个时间。当过了这么多天以后,两个星球是否同时处在一年的第一天。给出的数据的长度不超过一千万。。。第一眼看成了大小不超过一千万。这是一道卡时间的高精度除法题。求一个高精度的数分别除以两个低精度的数。所得到的余数是否同时为0.高精度方面虽然也有模板。但是接触不多,这题交给了adrui。然而后来他的模板也套不上。。需要改的话要改大量的代码。也就作罢。转而攻向最后一题1011。给出一个字符串。全部为小写字母。建立一个字符串数组A到自然数数组B的映射。使得映射后的数字序列能够取得最大长度的严格递增子序列。第一眼我们认为是按照a到1 b到2这样映射。也就是判断字母的大小。按照大小排序。adrui正在写代码的时候,我发现字符串数组A可以任意的顺序排列,也就是想怎么映射就怎么映射。在思考了几分钟以后,我确定了这一题的思路。求出这组字母中有多少个不同的字母。这个字母的数量也就是最后的结果。(严格递增子序列的长度)。遍历一遍字符串即可。这题很快写出来代码。然后1A了(00:44:05)。稍微缓解了一下压力。我们转向第一题。缺的就是一个高精度的模板。Superxd的PPT里面有一套高精度的模板。拿过来我把它稍微改了一下,样例能过了。但是它里面同时计算了商和余数。这点比较尴尬。目测会超时。于是交了一发。果然TLE。=_=。我拿出以前存过的一份模板。上面标明是求出余数。结果看了半天。。发现他求出来的是商。。。这时候adrui从网上找到了一份复杂度仅为O(n)的模板。套上去以后1600+MS过了(这题卡2500MS)(02:04:38 -1)。也算是有惊无险吧。这时候再次查看题目列表。1004的通过率很高。也过了好几百个队。我们仔细看了一下题目。确定了题意。给出N种礼品(最多10种),第i种礼品的数量为ai,将这些礼品分为一般礼品和特殊礼品。特殊礼品可以任意放置。而一般礼品则要保证相邻的桌子上不能放同样种类的礼品。可以任意确定某些礼品使其为特殊礼品。我们几个人思考了一会儿。我有了思路。既然是任意确定哪些礼品为特殊礼品,那么只要数量最多的那种礼品的数量在被砍掉所有礼品总量的一半(不是该礼品的总量的一半)以后不大于其他种类的礼品数量之和+1,就可以将礼品全部用上。(临界情况:砍掉以后的数量为n+1,其它礼品总和为n,那么可以插入那n+1之中)。另外再判断一下总礼品数是否为奇数。如果为奇数就需要减去(sum/2+1)。然后判断一下条件是否达成。确实是不大于,那么直接输出sum/2即是结果。否则将剩余礼品的总数乘二再加一即使最终结果(数量最多的那种礼品有部分浪费了)。确定了思路以后,我很快敲出代码。又是一遍AC。(03:04:49).其他题目也就跟我们大一的没多大关系了。(最后705  AC3题 总时间06:13:32 罚时一次),虽然罚时算比较少的了。但提交的时间还是太晚了。转眼看了一下大一的另外两个队,比我们队落后一点。这次的总结:模板要准备充足。不要到时候为了找模板而花费大量不必要的时间,题意要弄清。1011题险些弄错题意。以及,我们还是too young。掌握的算法还是太少太少。要更加努力了。

你可能感兴趣的:(总结)