zoukankan      html  css  js  c++  java
  • 2019.07.16考试报告

    考试报告

    0~1h

    搞出了T1T2写完之后瞬间过了样例,后来才发现我的状压数组开的是f[N]而不是f[1<<N]。直接WA20

    1~2h

    写了一个T3的n^3暴力去跟n^5对拍,没啥毛病(n^5,n^3都是27分。。。)

    2~3.5h

    这个时间段有点颓,想T3也想不出来了,检查T1T2也没查出错,一直等到交卷。

    T1礼物

    式子很典型就不说了,主要说一下为什么要倒推。

    根据Ts_Hugh学长讲的,我们正着推时概率并不是选那个物品的概率,而是一个常数,几乎没啥规律,

    如果非要正推的话就必须搞出概率,如果是反着推的话就不会出现上述情况了。

    所以有大佬总结道:概率正着推,期望逆着推。

    T2通讯

    Tarjan缩点+Top排序,一道水题。

    T3奇袭

    (一)27分算法

    考场上写了n^5和n^3的暴力,一个拍另一个,最后喜感地得了27分,不详细说了。

    (二)100分算法

    55,64分算法都没打,直接打的正解。

    首先我们把点坐标的横坐标作为数组下标,纵坐标为数组里的数,问题便转换为了:

    问有多少个区间满足 r-l=max(l...r)-min(l...r)

    这个题用分治和线段树都可以,我这里讲分治的。

    首先二分l,r,mid,这样左右两侧的区间便可以递归解决,现在考虑跨mid的区间对答案的贡献。

    我们定义4个数组lmin,rmin,lmax,rmax代表l到mid,mid+1到r的最大最小值。

    1>min max |

    r-l=rmax[l]-lmin[l],我们可以发现这个式子可以枚举左端点,O(1)查询r,之后判合法即lmax>rmax&&rmin>lmin即可

    2>min | max

    便有r-l=rmax-lmin,lmin<rmin,lmax<rmax。

    我们便可以根据max,min的单调性搞出两个指针,没枚举到一个l时都不断移动指针使其合法,并且同时把a[]在桶数组里加上或减掉。

    3> 4>情况与1> 2>对称思路是一样的。

     

  • 相关阅读:
    python之filter()函数
    figure margins too large错误解决
    “一个字等于多少个字节?”是一个不严谨的问法
    如何区分按字节编址与按字编址
    (stm32学习总结)—LCD—液晶显示
    (stm32学习总结)—GPIO位带操作
    (stm32学习总结)—SPI-FLASH 实验
    修改寄存器的位操作方法
    (stm32学习总结)—对寄存器的理解
    (stm32f103学习总结)—初识stm32
  • 原文地址:https://www.cnblogs.com/AthosD/p/11197712.html
Copyright © 2011-2022 走看看