前言
这次比赛我考的还行吧,拿了140分。但是比预期的要低,本来以为能够拿到210分的。可是因为T0MLE所以直接爆0了。70分直接和我说拜拜。
题目
T0:
其实T0要拿到70分不算难(直接来个大暴力),只要是有手就行(那我爆0了,岂不是没有手了吗?)。但是呢,我由于手欠,定义数组的时候没事用const int定义。结果呢,错把3e4理解成3000,然后呢直接空间超限被带走70分。
应得:70
实得:0
死因:数组开大了。
思路:
我的想法就是直接判断。在读入的时候读入一个二维数组。然后再判断一下上一艘到达的船的时间是否在这新进来的时间范围内(也就是24小时内)。如果是的话,直接标记一下,然后用一个变量统计起来就行了。
模拟过程图示:
我们先读入一组数据(就用样例数据吧):
然后先分析第2行。
我们可以看到,第二行的第一个数是到达的时间,第二个数是乘客的数量。因为他是第一个,所以只用判断自己的那趟船的乘客属于那个国籍就行了。
我们再定义一个bz数组,用来存储是否有乘客属于这个国籍。存储了以后就像下图那样:
我们可以看到,1、2和4里面是有数的,而3里面是没有数的。储存完了之后,我们只用用一个for循环遍历一次就行了。就像这样(l变量来统计不同国籍的数量):
最后只用输出l就行了。
T1:
其实这一题只需要一个大暴力就行了(但是你暴力只能有40分)。我们仔细看看数据点:有8个数据点最大的m才125。那么,如果我们直接用四重循环走起的话,也就是125的4次方,244140625(没超出long long的范围,噢耶)。直接疯狂枚举就行了。40分直接拿到手。
应得:30
实得:40(没想到,以为只能过6个数据点)
T2:
这一题赛后听WZX奆佬讲说是DP题,不过要加高精度(必须的,你的n和k大得很呐)。所以说,实际上我整场比赛都没有理会这一题,直接懒得做。不过,我有时间要是能够仔细检查一下T0,那我也就不至于只有37名了,直接就跑到第15名去了。
应得:0
实得:0
T3:
这一题是这套题中最水的一道题了。当我做完T0和T1后,回头来看这题。仔细一看,发现就是一道间谍。直接最小生成树轻松跑过。
应得:100
实得:100
总结:
这次比赛由于太粗心,所以直接丢掉了70分。要好好反省反省自己,下次不能够再犯这种错误了,一定要多检查几次(特别是定义)。加油!