noip2011做题总结

DAY1

    T1:铺地毯

        题目不难,是oj原题,乍一看容易卡题面,因为数据量和第一印象(开100,000*100,000会死的啊喂),不能用地毯覆盖完再判断。。

然后就换个思路,看看所求的地块最后被谁覆盖。

        于是carpet[100050][2],extension[100050][2]记录地毯左上角和扩展对所有地毯遍历,最后一张符合覆盖属性的就是答案咯

    时间复杂度大约o(n)。

    T2:选择客栈

        看到题目,满脑子都是ST,因为题目描述有区间 和 最小值两个关键词,于是就一门心思ST。

 用链表记录每种颜色客栈的位置,方便调用,然后,ST ST ST ST ST ST st

        o(nlog2(n))预处理,o(n)询问,综合时间比O(NK)快吧。。。

    T3:mayan

        大型暴力模拟递归回溯一大堆函数然后考场打不完直接放弃if大发拿40分系列。。。

DAY2

    T1:计算系数

        一道半数学题吧,考察到 排(yang)列(hui)组(san)合 (jiao)和 逆(di)元(tui)

正如前面所述,你可以推出杨辉三角作为系数的一个因数,或者用排列组合(Cnr),然后分别快速幂

求出第二个第三个因数,三个相乘取模,没了。。

        记住,少取mod两行泪

    T2:聪明的质检员

        暴力枚举估计拿30%,打二分估计%50,前缀和优化%70,二分加前缀和AC

先直接记录每块矿石的属性 w[i] , v[i] ,以及区间属性 x[i] , y[i],用max{w[i]+1}表示R,min{w[i]-1}表示L

用质量二分。对于中点的mid为质量限度,O(n)遍历所有矿石,当w[i]>mid时,总价值sum1[i]=sum1[i-1]+v[i],

个数sum2[i]=sum2[i-1]+1;否则sum{1,2}[i]=sum{1,2}[i-1];

        然后O(m)遍历区间,将两种前缀的区间值(s[j]-s[i-1])的乘积累加给Y,当Y>S时,增加质量标准以减小否则

减小限制{R=mid-1};并且记录ans=min{ans,abs(Y-S)}.

    最后,不开long long两行泪,不打lld两行泪,不清数组两行泪。。。

    T3:观光公交

        我以为是分层最短路,又以为是DP

谁知道贪心就能过,是数据水吧,毕竟是DP题,毕竟是NOIP DAY2 T3...

总结

 不开ll两行泪,不清数组两行泪,不取mod两行泪,不打文件两行泪,文件打错两泪。。。

        我意识到,不努力就会死的。。。

我已经放下了游戏(打游戏的人才懂得有多难),今后的日子里,我会努力的,学会算法还不够,还要避免低级失误,这个很要命的

wdc大佬告诉我,非智力扣分都该打脸。。。

期望(300/600)结果因为少取模,ST打错一个+1,(130/600)其实心里挺难受的,我为我的摸鱼和不认真忏悔

这几天我不会自闭,我会努力,我要去中山,为了最初的梦想和期望,做最好的自己!!!

原文地址:https://www.cnblogs.com/you-xiao-mang-ci/p/11208773.html