ICPC-Management-System
在ICPC大作业中发现的问题
1、find一定要在修改前,不然会报错,因为改后顺序不一致
2、罚时后面是第一次提交正确的题目,提交错误不加时间
3、在进行解冻题目的时候,最开始我是想直接压栈,这样ac_problem中自然就是有序的,这对于直接submit来说没问题,因为本身就是时间升序,但是当我们解冻的时候,由于按照字母顺序解冻,可能压栈的时间并不是按照提交顺序的,所以我要在解冻的时候进行sort。而我最开始用了选择排序,因为我认为最开始既然是有序的,只有在解冻的时候会影响顺序,但是这样还是始终有3个WA的点,等后来我换成数组和sort,即每一次解冻后都对题目进行解冻,就都通过了。
4、这道题我应用了一个很好的方法来判断是不是排名变化,由于只有排名上升题目的本身会发生变化,所以我们可以通过set函数的upper_bound函数来找当前解冻的下一个位置的数据点,并寻找在insert后的下一个数据点是不是相同,由于会遇到end的问题,但是只要对这种情况单独判断一下就好。 同时注意upper_bound找的是大于的,而lower_bound找的是大于等于,所以在执行删除后lower_bound会失效,所有用upper_bound
5、学到两个很重要的测试数据的方式,首先老丁的一句话点醒了我,当时我不太确定我的想法能不能用,他说你先试一下就好了,而我在测试的时候才明白这两个函数的用处。第二个是对于有排序的数据,虽然有很多错误,但可能只是一处排序的问题。可以采用对应对应条件输入输出来寻找。
6、这次没有用到代码效率分析器,写结构图可以试一下。