2016.8.14总结

    xiaoxiao2025-04-17  7

    总结:

    这次比赛还不错,也算一个突破吧,240分,全班第3,但是我仍不满意,我要实现我第1名的梦想!

    下面来分析一下我们的题目:

    [1]排名(rank)

    拿到题目一看,看起来是道水题,可以用排序,但是一看数据,5000000!快排肯定不行,所以我们可以先在输入时取出min和max,然后使用桶排序,i从min循环到max。那么什么是桶排序呢?

    桶排序就是先用一个数组,记录每个数出现的数量,然后用i在下一个循环中枚举,如果a(就是那个数组)[i]>0 那么就循环a[i]次,把它记录下来。然后就输出前m个就行了!

    [2]简单游戏(easygame)

    第一次看到题目时,我想这题很简单,但后来我看到1<=n<=maxlongint 我就懵了,这个怎么可能!但是我用了判断的方法,针对某些点,优化了一下某些数据,就的了50分,这就是这样的:其实只需要把它们拆开,拆成个位,十位,百位......分开来判断,这个规律要自己去发现。

    [3]危险系数(actobat)

    我觉得这是这套题最简单的一题,首先用一个快排,排它们力气和体重的和,从小到大排,然后就用一个a数组,算出这排数列的后缀和,便于后面的运算。然后就用一个枚举,算出他们承受重量最大的一个就行了。

    [4]WING(wing)

    这题其实不难,我是听了同学讲才发现这一点的。其实只是题目描述清楚一点就可以作为第一题来用了。

    正确方法是这样的:首先用一个f数组存,f[i,j]表示j这个字符串只能用在第i个格里,它存的是它是在第几个时间存入的,然后输入一次就判断一次,如果询问,就看看,如果f[i,s[i]]=0 那么就输出-1就行了!

    转载请注明原文地址: https://ju.6miu.com/read-1298157.html
    最新回复(0)