zoukankan      html  css  js  c++  java
  • CSPS模拟 49

      连续退步2333

      我怎么这么不稳啊2333

      看看人家大敛,天天AK

      

      考后改了改sb错误就变40+80+100了...

      但愿我的实力还在?

      T1 养fa

        拿到题心想,这次一定把T1切了

        开始研究这个见了花会喜悦的小C

        这..模意义下的最大值?

        开始想数据结构..

        这这这最值不具有可减性啊

        这这这也没法处理所有k的答案啊

        (去世)

        分块也成正解了?QWQ

        虽然没法使每个询问都O(1)出结果

        但是可以平衡一下预处理和询问的复杂度

        比如根号复杂度还是可以接受的

        比如分块,处理每个块对于每个k的答案还是比较简单的

        查询的复杂度也是根号可以接受

        

        所以当遇到非常吃屎的信息处理的时候

        利用好分块这个工具...

      T2 折射

      

        按y排序不是不可以,但是会被卡空间

        不过可以通过特殊的压空间技巧水过这个题..

        吃屎的一套题.......

        如果不压空间,就得按x排序,那么设f[x][0]为向左下拐的方案数,1为右下

        从左往右插点

        由于当前枚举的i是最靠右的点,那么他

        1.顶端,向左下折一下然后从拐点向右下折一下

        2.一个拐点,从左边更高的某处折过来然后向左下折一下

        从左向右枚举i,从i-1向左枚举j

        如果i比j高一些,那么j可以作为i向左下拐的一个选择,$f[i][0]+=f[j][1]$

        否则i可以作为j向右下拐的一个选择,由于此时也保证i向左下拐的位置仍在j右边(ij之间),$f[j][1]+=f[i][0]$

        初始化$f[i][0]=f[i][1]=1$,因为如果此点合法,同样可以停在这里而不必向左(右)下拐到其他点

        最后$ans-=n$,由于上边的初始化导致只选一个点的方案被统计了2次

      T3 画作

        如果想到 对着一个点猛操作一定包括最优解 ,那么n^4的算法很好写了

        不会证明,纯属瞎猜:

          如果有若干个分散的黑块,把它们一个个逐一涂上不如先涂白块把他们沟通起来,然后一并消灭

          如果上一轮消灭了一些黑块,下一轮也一定是从那里开始,因为那里显然更加地“开阔”,能沟通更多的黑块

          或者,第一轮消灭了一个“触角”十分繁多的黑块,也可以使场地更加地“开阔”,为最优解铺路

          可以枚举初始状态的每一个联通块,暴找最优解

        对了,bfs请把起点的标记设成1,不然真的可能掉你100分

  • 相关阅读:
    C++中的回调函数(callback)
    C++ Primer5 练习5.12:编程统计含有两个连续字符(ff、fl、fi)的字符序列的数量
    范围for循环过程中用&修改元素
    C++资料整理(持续更新)
    问题解决:VS报错:The build tools for v140 (Platform Toolset = 'v140') cannot be found
    上传新文件至个人hexo博客的步骤
    【Ubuntu】同时安装了python2和python3,使用pip安装软件时注意
    python解析xml文件 修改xml指定标签中的内容
    实操:main(int argc,char ** argv) 输出main函数的参数
    Saga-Python笔记
  • 原文地址:https://www.cnblogs.com/yxsplayxs/p/11565895.html
Copyright © 2011-2022 走看看