娱乐赛总结反思

太累了,就只写了一些自己做的不太顺利的题目的题解 qwq 请谅解

T1

这道题目一道 dp 模板题目,挺简单的,一下子就搞定。

中间不小心判断写错了,不过过了一会就调对了

T2

被这道题目吓到了 qwq

后面草略地写了一下代码,发现并不是很难,以后遇到题目,不能畏惧,要面对。

T3

这道题目就是 STL 的模板,还是挺简单的

这道题目我是用优先队列优化,直接 AC

T4

这道题目有点难,我想了好久 qwq

后面想到数学,然后又推了很久

感觉听不顺利的写了一下题解

网页版: T4模考题解 - 常规 - 信友队论坛

讲解一下这道题目的思路:

首先呢我们确定 for 循环·的遍历顺序从 2 开始向 n 遍历。

如果我们遇到 ceil[i] 大于 ceil[i+1] 则我们就需要对 ceil[i] 进行分割。

接下来就是如何计算该劈成几份使得 ceil[i] 不超过 ceil[i+1] 可以得到我们需要将 ceil[i] 劈成 (ceil[i]+ceil[i+1]-1)/ceil[i+1] 份,那么我们需要操作的次数就是份数减 1

我们将答案加上操作次数,并且更新 ceil[i] 为被劈后的大小 ceil[i]/p 其中 p 为被劈的份数。

这就是我们的思路然后放上伪代码:

    for(int i=n-1;i>=1;i--){
        if(c[i]<=c[i+1])continue;
        int p=/*份数*/
		cnt+=p-1;//加上答案
        c[i]=c[i]/p;//更新
    }
T5

这道题目把我干爆了

第一次写砸了 TLE35 还有 WA 的点。

后来优化了一下,但是忘记了特判喜提 TLE20

后来发现少了判断喜提 TLE65 然后想到二分优化

结果左端点初始化错了 WA35

随后调整了一下 WA40

比赛还剩 # 秒结束!

赶快把 TLE65 的代码再提交一遍!

T6

这道题目简单,我是用 map 做的,每次判断是否为偶数即可!

感觉是一道模板。

T7

一开始打了个暴力,显然 TLE!

然后优化,考虑到左边和右边相减就是答案。

一顿优化终于 AC 了

这道题目感觉不太顺利写篇题解

网页版: T7模考题解 - 经验分享区 - 信友队论坛

这道题目显而易见不能暴力否则喜提 TLE25 别问我我是怎么知道的

我们需要更快的一个方法:

首先呢我们可以在输入的时候将数一样的存入同一个 map 里面。

然后呢我们需要遍历所有数值但是这里不能再暴力了,我们需要一个高效的数学方法来计算:

  • 我们求出两个数 sasb 其中 sb 表示这个位置作为右端点时,左边所有位置的值,sa 表示当前位置作为左端点时,右边所有位置的值,最后将 sb-sa 就是最后满足的三元数对。

放上有注释的伪代码:

   for(auto it:mp){
        auto res=it.second;//数字出现次数
        int m=res.size();
        if(m<2)continue;//如果没有重复则不可能实现
		int sa=0,sb=0;
        for(int i=0;i<m;i++)sb+=(res[i]-i)*i;//计算sb每次将左边位置的值加上
        for(int i=0;i<m;i++)sa+=(res[i]-i)*(m-1-i);//计算sa每次将右边位置的值加上
        ans+=sb-sa;//将其详见累加最后结果
    }

通过优化,我们就有效的将 O(N^2) 降为了 O(N)

T8

这次比较惨烈,一道树上 dp 没有写出来。

之前看过关于树上 dp 的文章,但是忘了,考场上也没有想到是 dp

总结

通过这次考试 T8 需要每次巩固,并且会遇到这种情况总体来说还是 dp 不够熟练。还有像二分这种基础算法要记熟!

时间分配

首先 T1 5分钟搞定!

然后看 T2 有点想不出来,先看了 T3,5 分钟 AC

然后看了 T4 有点想不出来,看了 T5 然后TLE想了一下优化还是 TLE 先看 T6

T6 水,5 分钟 AC!然后看 T7 先打了个暴力 然后考虑优化,一开始没想出来,回去看 T2

T2 花了大约半个小时 AC 了!

T4 花了大约半个小时推了一下公式,然后也 AC 了!

T5 继续优化,又花了好久 还是 TLE

继续看 T7 ,T7 大约 40 分钟也 AC 了!

老师说加了一道题目 T8

看了一下 T8 写了个搜索 TLE!

然后回来考虑 T5 优化呀一直优化,一直 TLE65!

又看了一下 T8WA!

然后想到 T5 二分,结果写砸了!

最后几秒赶快提交!

这次考了 665 排名第 6

1 个赞