• 朝花夕拾(一)——一些手法或性质的初识


    有时间有心情(那就是没有)就逐渐回顾一下写题的过程中学到了哪些手法。
    对于新手来讲每个技巧都是新奇而精妙的。
    就按照时光轴这一栏的题目顺序来吧。

    1.拓扑序上无环的判定及拓扑序上的dp,cf#541div2D

    2.两种关于并查集的手法:1.开虚点的并查集,后来在西北大学校赛题解中才知道是带删除的并查集,那里的动态开点更普适一些;2.合并后需要有先后顺序,则设置l和r数组,f数组也变成fl和fr。这样就是条链集。 cf#541div2F

    3.字符串常常转化到26个字母上的操作,cf#541div2E

    4.预处理每排是否与上一排相同,用数组记录,为之后的枚举做准备,cf#edu59D

    5.dp的一种套路:一些会有冷却时间的任务,某时间点如果有多个任务可以多选,只有一个任务则必做。做法是倒着扫,dp[i]中i代表时间点。洛谷1280.后面还有个cf题是更复杂一点的,但大方向一样:cf#536div2E,虽然某任务可以选好几个时间点去开始做,但其实根据题目规则已经贪心固定了,预处理好哪个时间做哪个事后倒着dp即可。

    6.在坐标轴里走来走去,列式子发现各种方案都一样的思维题。BZOJ1108

    7.常见套路:树状数组或者线段树维护扫描线,必要时离散化。BZOJ1218学到的更多:当要维护一个二维窗口时,如果说窗口不包括边界上的点,则处理时把边长-1之后即可当作包含边界点处理(整数域);差分的思想,有时是滑动窗口的,有时是dfs的,等等。就是进入范围时计数++,当走出这个范围时计数--;

    8.无平方因子数,意味着分解后各质因子的次数为1;求第K大常有分治思想解决,本题二分;容斥的过程:先把所有的数都加上,然后直观感受哪些不该加,比如本题:第二轮把4、9、16的倍数都减去,然后把重复的再加回来……比如36在4和9的删除轮多删一次,所以要加回来;最后,质数请时常关注莫比乌斯函数和欧拉函数,此题容斥系数恰为mu。BZOJ2440

    9.不算技巧,对题目本质的深刻理解。cf #546div2D

    10.预处理,使得之后转移O(1);期望在相遇时是0,故记忆化搜索。BZOJ 1415;还是知道终态的期望往起始推tc 9915

    11.转移时中间很长一段都是一样的则直接大幅压缩路径长度。POJ3744洛谷1052

    12.货币系统套路:从小到大排序,如果该值不能被之前的表示则加入系统。洛谷5020

  • 相关阅读:
    亚马逊EMR学习网站
    python实现redis三种cas事务操作
    【转】Jython简单入门
    【转】Android 收集已发布程序的崩溃信息
    【转】Android 避免APP启动闪黑屏(Theme和Style)
    【转】Android内存机制分析2——分析APP内存使用情况
    【转】Android内存机制分析1——了解Android堆和栈
    【转】JAVA Socket用法详解
    【转】JAVA 网络编程
    Android 无法Bind Service
  • 原文地址:https://www.cnblogs.com/AlphaWA/p/10817053.html
Copyright © 2020-2023  润新知