• A#G/C013


    A#G/C013


    A Sorted Arrays

    不会/kk

    B Hamiltonish Path

    我是傻逼

    如果一条路径不合法,那么把不合法的端点向没出现过的相邻点连过去救星了

    C Ants on a Circle

    我是傻逼

    显然最后的位置可以直接求出,环上相对位置不变。

    然后要确定一个位置的答案

    假设每个蚂蚁手上有一只鸡,鸡的数字递增相遇就交换手上的鸡,不改变方向

    那么蚂蚁1如果向右走,由于相对位置不变每交换一次鸡的数字会增加1

    交换鸡的次数就是蚂蚁1碰到其他蚂蚁的次数,可以直接算出来

    D Piling Up

    每次操作球的变化量最多是1,可以dp记录每次的黑球量,然而有重复,多加一维记第二维是否触底就行了

    E Placing Squares

    首先可以容斥,(F_i=f(x_i)-sum_{j<i}f(x_i-x_j)F_j)

    (f(x))就是长度为(x)的区间分正方形的权值和

    打表发现是http://oeis.org/A033453然后可以矩乘优化转移

    (f)递推式是(f_i=sum_{j<i}(i-j)^2f_j)

    考虑平方的意义就是区间内放两个球的方案数所以可以(f[0/1/2])表示放了几个球,也可以矩乘优化

    F Two Faced Cards

    神仙题

    首先离散化(C),按照(C)离散化(A,B),现在(C=[1-(n+1)])(A,B)离散化了意义不变

    搞一个(c)数组,初始是(c_i=-1),然后默认所有牌选正面,就是让(c_{A_i}++)

    还要加上来一张牌,如果那张牌选上来的数字是(x),再把一个(c_x++),要求能配对的条件是所有前缀和(ge 0)

    那么不考虑新的那张牌,前缀和应该是(1-(x-1))这段(ge 0)(x-n)这段(ge -1)

    然而你全选正面很可能不合法,这个时候就要把一些正面换成反面

    首先让所有前缀和(ge -1),从右往左腾讯(我也不知道为啥从左往右捕星)如果(S_i<-1)就选一个左端点最小的区间([B_i,A_i))加上(1)

    再从左往右如果(S_i<0)就选右端点最大的区间,可以得出每个(ans_i),表示(1-(i-1))这段(ge 0)(i-n)这段(ge -1)最多用多少正面

  • 相关阅读:
    页面上输入任意数字,点击按钮后计算阶乘。
    利用递归求两个数字的最大公约数。
    17css动画
    10Vue组件参数校验和非Props特性
    git rebase --continue出现“If there is nothing left to stage,chances are that something else already introduced the same changes; you might want to skip this patch.”
    9Vue父子组件的传递方式
    8Vue组件使用细节
    Block-scoped declarations问题解决
    7Vue中的set方法
    6Vue条件渲染
  • 原文地址:https://www.cnblogs.com/xzz_233/p/11724460.html
Copyright © 2020-2023  润新知