• 模拟测试20190918


    诶这次考得其实挺炸的诶

    然而结果还行?

    莫不是前几次考得太炸导致$ rp++? $

    上来看$ T1 $成功理解错题意

    想不到正确复杂度的做法所以只能打暴力

    打了个$ n^{2} $的暴力然而他A了?

    yyT2了1h然而无果

    看T3,先打了个普通$ O(nlogn*2^{m}) $的暴力

    然后又改了个01trie的$ O(nlogn*2^{m}) $暴力

    然后改成了$ O(n^{2}m) $的背包

    然后试图优化背包无果,$ 50pts $滚粗

    总分$ 100+0+50=150pts ,rank6 $

    继续努力啊

    $ T1:  Set $

    好神啊

    题里给了n个数,所以会有n+1个前缀和

    而在$ mod n $意义下一共只有n个数

    那么至少有两个前缀和是相等的

    那这两个前缀和之间的数之和一定是n的倍数

     

    $ T2:Read $

    好神啊

    要想每天读书的种类都不同 , 就要求每一种书的数目不超过其它书的数目 +1,

    所以只要看是否有一种书超过了 (N+1)/2. 本题空间限制很小 ,

    但是 N 有很大 , 所以不能用数组存下来 , 但是我们只要找到超过(N + 1) / 2 的书 ,

    所以我们用两个变量 id, cnt, cnt 初始为 0.

    每一个 A[i], 如果 cnt==0, 那么就令 id=A[i],

    如果 id==A[i], 则 cnt++, 如果不等于 , cnt--.

    最后只要再扫一遍求出 id 的出现次数即可

     

    $ T3:Race $

    对于所有A建出来$ 01trie $

    那么观察每个数,他的答案就是他01trie上的那条链两边的点的size所能组成的所有值的平方

    但是这样做是$ O(n^{2}m) $的

    设所有两边点的szie为a[0]~a[m-1]

    对于一个平方式,把他拆开来分别统计每一项的贡献

    一个平方式$ (a_{0}+a_{1}+......+a[n])^{2} $拆开后分别有$ a^{2} $和$ 2a_{i}a_{j} $两种项

    对于$ a^{2} $,他的答案就是$ a^{2}*2^{m-1} $

    对于$ 2a_{i}a_{j} $,他的答案就是$ 2*a_{i}*a_{j}*2^{m-2} $,可以直接$ O(m^{2}) $暴力统计,或者求个$ sumlimits_{i=0}^{m-1}a_{i} $可以$ O(m) $

    总复杂度$ O(n*m) $

  • 相关阅读:
    ClickHouse介绍(三)MergeTree系列表引擎
    ClickHouse介绍(二)MergeTree引擎
    ClickHouse介绍(一)初次使用
    使用AWS SageMaker进行机器学习项目
    Netty(三)Netty模型
    Netty(二)线程模型
    Netty(一)IO模型
    Kubernetes(八)安全认证
    EXCEL脚本收藏
    彻底取消unigui /server页面及扩展应用
  • 原文地址:https://www.cnblogs.com/mikufun-hzoi-cpp/p/11548259.html
Copyright © 2020-2023  润新知