zoukankan      html  css  js  c++  java
  • csp-s模拟测试53

    期望得分:61+?+37

    实际得分:61+21+14

    A. u

    难度评估错误,放弃去想正解和一闪而过的二维前缀和,以为很不可打,于是打了61部分分。

    然而这是三道题里最简单的。

    正解:差分+二维前缀和

    考虑如何二维差分,实际上就是硬凑,假设并验证所有块的差分前缀和是否正确。

    +1  -1

      +1  -1

        +1  -1

    -1      +1

    得到如上。

    然后对对角线做差分,做前缀和转化得到二维差分,再做二维前缀和得到原矩阵。

    妙啊,秒啊

    B. v

    考场上不会状压dp转移,正序倒序入度出度一直不能区分。

    记忆化搜索,递归转移,相当于倒序。这样式子也很好写。

    100%也是这个思路,只是优化状态数。

    不记录每个位置存不存在,转而记录球的颜色。

    用哈系表可以做到。

    注意到:

    000101状态不唯一,可能是2B2W,1B2W......

    为了区分,加入轮数的信息。

    在最高位打标记1,这样每一轮标记的位置不同。

    C. w

    考试上秒了第一问,第二问猜了个结论。

    一开始没有看见后两个样例(好几次了啊喂),码完去盯了一个小时T2

    9点多看到发现过不去第三个,把自己hack了,心态爆炸。

    正解:

    第一问是缩完边后奇数点个数/2,之前的结论(然而我缩边打炸了)

    但用老路子求出第一问对第二问没帮助。

    设二元组f[u][0/1]={c1,c2}表示u向fa出不出边,子树中有c1个奇数点,c2条经过边。

    之后进行子树合并dp,相当于做背包。

    然后对父亲边分类讨论,更新f[u][0/1]

    背包正确性:

    由于没有要求最长链最短之类,那么哪两条链合并是无所谓的,我们只要关心有没有合并,记录有没有多出来的线头。

  • 相关阅读:
    BZOJ 1064 NOI2008 假面舞会
    p1186反素数(模板题)
    p1140【飞船控制站】
    p1164【立方体求和】
    p1103【base64编码】
    长沙集训(day不知道)伪总结(怕不是是一篇心得??)
    长沙集训day12
    长沙集训day10
    长沙集训day9
    长沙集训day8
  • 原文地址:https://www.cnblogs.com/hzoi-yzh/p/11604121.html
Copyright © 2011-2022 走看看