zoukankan      html  css  js  c++  java
  • 历次考试总结

    Test:NoiOnline 2020 (20200425)

    考试策略

    经验和教训

    第一题:(color)

    期望得分:100 实际得分:100 改后得分:100

    解题思路

    这道题是一道数学题。还好。假设(p_1<p_2)

    以两个(p_1)(p_2)的共同倍数之间的区间为一个单位。这中间(不包括两端)一共会有(frac{lcm(p_1,p_2)}{p_1}-1)(p_1)的倍数。它们会被(frac{lcm(p_1,p_2)}{p_2}-1)(p_2)的倍数分成(frac{lcm(p_1,p_2)}{p_2})个部分,每个部分的个数会尽量平分,个数差不会大于1。所以就可以得到最长的连续(p_1)个数。和k比较就可以了。

    失分原因

    解决办法

    第二题:(sequence)

    期望得分: 50 实际得分:50 改后得分:0

    解题思路

    我只会暴力。(O(N^2))

    实际上,这道题并不需要什么高级算法。陈亮恺举了一个样例,把每一个区间的答案列出来,发现了规律,然后就可以用线段树解决问题。

    线段树维护的是函数值的区间和而不是函数值的平方区间和。l=1时的平方区间和可以(O(N))算出,后面就只要把该减去的减去就可以了,不需要维护平方和本身。

    失分原因

    当时把这道题复杂化,以为要用到什么类似莫队的高级算法,没有对一个实例进行推演。

    解决办法

    做题之前先自己造几个数据玩一玩发现题目内部的性质。

    第三题:()

    期望得分:10 实际得分:0 改后得分:0

    解题思路

    连暴力都没有打完,只写了个链的解法。因为题意有歧义所以无法估分,大概是10分。

    正解:首先用怎么想都想不到的dp做:

    dp[i][j]表示i的子树中有j对产生贡献的点对的方案数。
    

    然后就有了转移:

    在i号点不加入的时候:

    [dp[i][j + k] = sum_{son}dp[son][j] imes dp[i][k] ]

    在i号点加入的时候:用A[i]表示i的子树中小A的点的个数,用b[i]表示小B的点的个数。

    [dp[i][j]+=f[i][j-1] imes max((B[i]-(j-1)),0) ]

    在树形DP结束之后,用到了一个叫做二项式反演的东西:

    [g(k)=sum_{i=k}^n C_i^kf(i)Leftrightarrow f(i)=sum_{k=i}^n (-1)^{n-k}C_k^i g(k) ]

    设答案(H(k)=)正好k对造成贡献的点对的方案数。

    我们需要一个反演的(G(i))满足:

    [G(k) = sum_{i=k}^m C_i^kH(i) ]

    yxt设的是:

    [G(k)=dp[1][k] imes (m - k)! ]

    这个转化有点看不懂了。

    失分原因

    暴力没打完。优先写的应该是暴力。

    解决办法

    有时候不要纠结定理的证明。更重要的是会使用。

    *说明:

    期望得分:考试结束时预估分 实际得分:考后评测分

    改后得分:可能不能完全改对,写上改后最高分

    解题思路:可详可略,可以不写,可以写在做题记录里。

    失分原因:从心态调节、时间分配、算法分析、知识点掌握、代码实现/调试能力、细节的分析和处理、审题测试等做题习惯多个维度分析。

    解决办法:针对前面导致失分的每一个原因,找到一个防止以后出现同类问题的明确解决办法

  • 相关阅读:
    产品中常用理论
    Mac下配置环境变量
    Maven仓库
    深入理解Spring中的各种注解
    JAVA中简单字符串分割
    WARN: HHH000277: Could not bind factory to JNDI
    dos命令窗口下下java命令提示找不到或无法加载主类
    数组实用类:Arrays
    数组
    线程创建方式
  • 原文地址:https://www.cnblogs.com/lightmain-blog/p/12809382.html
Copyright © 2011-2022 走看看