CSPS模拟 41

  说不会鸽就不会鸽的

  虽然是炸裂的一场

  T1没读懂题,T23交了两个无脑暴力

  (公式懒得打了 latex过于感人)

  T1 点阵内不重合的直线有多少条?

    枚举斜率,那么“后继”不在点阵内的点可以作出一个贡献

    柿子列出来可以表示成一些前缀和的相加减形式

    然后发现这题卡空间?

    难道要一个数组三次利用

    于是上网颓题解

    发现有人用两个前缀和就完事了

    用答案推答案..

    前缀和处理过后,需要增加的答案只是区域内$gcd(a,b)==1$的$(a,b)$点对数

    再用一个前缀和记录这个点对数,两个前缀和可以正好通过

    有人用莫比乌斯反演,在这受小的一拜

 

  T2 树有点权边权,问所有路径的路径长度乘最小点权的最大值

    为啥没想到 点分治omo

    单次统计不超过n条,明显非常可行

    按路径上的最小点权排序,插入以子树为下标的线段树,可以方便地查次大值

 

  T3 用堆水过我不好意思写了

    如果用堆的话

    需要考虑到一种情况,如果当前堆中存在一个区间包含另一个区间

    优先取出被包含的区间将导致包含它的区间将来不可用

    但是实际上还是有可用的部分的

    所以应使包含别人的区间优先取出

posted @ 2019-09-15 20:51  Yxsplayxs  阅读(112)  评论(0编辑  收藏  举报