zoukankan      html  css  js  c++  java
  • 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],之后再反着扫一边求出一组解即可。

  • 相关阅读:
    java web数据可视化
    全国疫情统计可视化地图
    数组中的学问
    软件工程第二周开课博客
    梦断代码阅读笔记1
    补充urllib
    多用户登录
    学期课后个人总结
    团队冲刺第二十六天
    团队冲刺第二十五天
  • 原文地址:https://www.cnblogs.com/AthosD/p/11477214.html
Copyright © 2011-2022 走看看