zoukankan      html  css  js  c++  java
  • 【2020省选模拟】01.17比赛总结

    比赛思路

    传送门

    • T1(count):刚开始看错题意了。。。然后想到了从小往大加,但是没有想到可以预留位置,以为是直接贴在一起插的,然后就转移不动了。。。
    • T2(play):想到了显然的nq的做法,然而却并没有什么分。。。
    • T3(maintain):显然是数据结构,但是显然并不可打。。。

    赛后消化

    • 可以预留位置,设状态f[i][j][k][l]f[i][j][k][l]表示已经放了从小到大的第ii个,分为了jj段,当前的绝对值之和为kk,因为边界有可能有或没有,是特殊情况,所以要多加一维ll表示0/1/2个边界已经确定了。这相当于是对于每新加进来的一个数考虑它的贡献±a[i]、0、±2a[i]。因为k可能刚开始加得比较大,所以我们在每一个段的边界上再假定多加一个当前的a[i]a[i],那么可以保证全部是正数,且当前的kk一定为最终kk的最小值。
    • T2推式子,运用指数型多项式的知识就可以简单 推导了。
    • T3数据结构。先用splay预处理所有操作实际的位置,然后变成了一个动态数点的问题,可以用set处理出相邻的相同颜色的范围,那么修改当前点影响到的一个区间的范围(二维的)可以算出,然后用CDQ处理时间,扫描线+树状数组处理二维偏序的问题,就可以比较简单 困难地解决这个问题了。码量大概在6K左右,我也只能口胡了。

    总结

    • 今天学习了一下指数型多项式,但是发现一些基础的导数、积分的知识我还完全不知道,只能暂时以记结论的方式去运用。可见数学知识才是学习更高更难算法的基础。
    • T1实际上是一个不难的东西,可惜我没有往插入已知位置以及提前计算好答案那个方面去想。
  • 相关阅读:
    原生JavaScript封装insertAfter方法
    SQL截取最后一个由字符分隔的字符串
    给标识列显示的添加数据(IDENTITY_INSERT 为 ON)
    C#保留两位小数,四舍五入的函数及使用方法
    UEditor1.4.3上传图片提示上传失败
    SQL Server 2005公用表表达式(CTE)
    UEditor 粘贴表格时报错导致无法粘贴的解决方法
    事件监听机制
    数组中的趣味题(一)
    redis的工具类封装
  • 原文地址:https://www.cnblogs.com/DeepThinking/p/13090890.html
Copyright © 2011-2022 走看看