• 2019.09.06考试报告


    特别鸣谢secret大神教会了我T3

    T1简单的区间

    跟原来的某道题思路一样,dfs+启发式合并

    T2简单的玄学

    ans=((2^n*m)-(2^n)-m+1)*((2^n)-m+2)...(2^n))/(2^(n*m))

    30分算法:

    暴力枚举1到m并按照式子计算

    70分算法:

    分母上只有2这个质因子,考虑对分子里的2进行提取,之后快速幂对1e6+3取模即可

    时间复杂度O(m*log2(m))

    100分算法:

    通过上面的式子可以发现m很大的时候分子对p取模便成了0,所以可以直接break。

    (注意break会导致分母里的2没有被减够,所以要预处理减了多少个,而不是在for循环中减)

    T3简单的填数

    二元组(x,y)代表当前位置填x,且一共填了y个。

    贪心策略:让每个元素尽量只出现2次

    用up[i],dn[i]存储上述二元组,表示当前位置能控制的范围

    up[i].y代表填这个数能向前取同样的数的最大长度,dn则反之。

    把序列扫一边便可以求出a[n],之后再反着扫一边求出一组解即可。

  • 相关阅读:
    消息队列优缺点及各种MQ对比
    反射详解
    Tomcat线程模型及调优
    Tomcat结构及类加载机制
    Spring AOP
    Spring IOC
    Spring介绍
    SpringMVC介绍
    Mybatis介绍
    Ajax笔记(一)
  • 原文地址:https://www.cnblogs.com/AthosD/p/11477214.html
Copyright © 2020-2023  润新知